How do I do this?
For example, if my column is "cats,dogs,birds" and I want to get any rows where column contains cats?
How do I do this?
For example, if my column is "cats,dogs,birds" and I want to get any rows where column contains cats?
Using LIKE:
SELECT *
FROM TABLE
WHERE column LIKE '%cats%' --case-insensitive
%.'%'||table2.field||'%'as the like criteriaWhile LIKE is suitable for this case, a more general purpose solution is to use instr, which doesn't require characters in the search string to be escaped. Note: instr is available starting from Sqlite 3.7.15.
SELECT *
FROM TABLE
WHERE instr(column, 'cats') > 0;
Also, keep in mind that LIKE is case-insensitive, whereas instr is case-sensitive.
instr(...) is a little bit faster (0.32s vs 0.34s). You can use .timer on in SQLite to measure the execution time.