web-dev-qa-db-fra.com

La chaîne SQLite contient une autre requête de chaîne

Comment puis-je faire cela?

Par exemple, si ma colonne est "chats, chiens, oiseaux" et que je souhaite obtenir des lignes contenant des chats?

94
Joren

Utiliser LIKE:

SELECT *
  FROM TABLE
 WHERE column LIKE '%cats%'  --case-insensitive
173
OMG Ponies

Bien que LIKE convienne à ce cas, une solution plus générale consiste à utiliser instr , qui n'exige pas que les caractères de la chaîne de recherche soient masqués. Remarque: instr est disponible à partir de SQLite 3.7.15 .

SELECT *
  FROM TABLE  
 WHERE instr(column, 'cats') > 0;

Aussi, gardez à l'esprit que LIKE est un cas - insensible , alors que instr est un cas - sensible .

76
Sam