Jak mam to zrobic?
Na przykład, jeśli moja kolumna to „koty, psy, ptaki” i chcę uzyskać wiersze, w których kolumna zawiera koty?
Jak mam to zrobic?
Na przykład, jeśli moja kolumna to „koty, psy, ptaki” i chcę uzyskać wiersze, w których kolumna zawiera koty?
Odpowiedzi:
Korzystanie LIKE:
SELECT *
FROM TABLE
WHERE column LIKE '%cats%' --case-insensitive
%
.
'%'||table2.field||'%'
podobnych kryteriów
Chociaż LIKE
jest to odpowiednie w tym przypadku, bardziej ogólnym rozwiązaniem jest użycie instr
, które nie wymaga znaków ucieczki w ciągu wyszukiwania. Uwaga: instr
jest dostępny od Sqlite 3.7.15 .
SELECT *
FROM TABLE
WHERE instr(column, 'cats') > 0;
Należy również pamiętać, że LIKE
wielkość liter nieinstr
jest rozróżniana , natomiast wielkość liter jest rozróżniana .
instr(...)
jest trochę szybszy (0.32s vs 0.34s). Możesz użyć .timer on
w SQLite do pomiaru czasu wykonania.