2009-06-02 11 views
0

J'ai une table appelée txn dans laquelle une colonne appelée pid est un csv. J'utilise la requête de la manière suivante:.mysql sélectionner des lignes impliquant csv

SELECT * FROM txn where pid like '%,11%'; 

-à-dire, si pid =, 1,2,7,11,4, cette ligne particulière doit être sélectionnée .. Mais mon problème est .. depuis que je suis en utilisant

comme

et si pid =, 1111112 ou quelque chose comme cela, alors même si elle ne dispose pas de 11, cette ligne va se selected..so cette requête ne résout pas mon problème .. Quelqu'un peut-il m'aider avec ce??

Répondre

0
SELECT * FROM txn where pid like '%,11,%' or pid like '%,11'; 
0

Votre chaîne a toujours un leader comma il faut donc ajouter une queue trop (par exemple pid=',1,111,112,'), puis '%,11,%' sera toujours suffisant. Vous pouvez même le faire à la volée:

concat(pid,',') like '%,11,%' 
0

SELECT * FROM TXN où pid IN (1,2,7,11,4)

Hope qui aide!

Questions connexes