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ż LIKEjest 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: instrjest dostępny od Sqlite 3.7.15 .
SELECT *
FROM TABLE
WHERE instr(column, 'cats') > 0;
Należy również pamiętać, że LIKEwielkość 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 onw SQLite do pomiaru czasu wykonania.