Sebastien Posté 23 Juin 2008 Posté 23 Juin 2008 Pour nettoyer les soumissions de mon annuaire je fais des requètes successives de ce type dans phpmyadmin : SELECT * FROM `ma_table` WHERE `title` LIKE '%viagra%'LIMIT 0 , 200 Seulement je dois me taper à chaque fois les mots-clés sensibles (viagra, porn, poker etc.). Y a-t-il moyen d'avoir un "ou" (OR) booléen dans la requête ? genre ceci SELECT * FROM `ma_table` WHERE `title` LIKE 'viagra OR poker OR cialis...'LIMIT 0 , 200
Portekoi Posté 23 Juin 2008 Posté 23 Juin 2008 SELECT *FROM `ma_table` WHERE `title` LIKE '%viagra%' or `title` like '%poker%' or `title` like '%cialis%'LIMIT 0, 200
Sebastien Posté 23 Juin 2008 Auteur Posté 23 Juin 2008 Merci Portekoi ! Encore une petite question : on est à chaque fois obligé de specifier le champ pour chaque like ? Ou bien il existe une syntaxe plus compacte ?
Portekoi Posté 23 Juin 2008 Posté 23 Juin 2008 Non, tu es obligé... Par contre, pour les champs qui sont égal à la valeur, tu peux utiliser un IN : Select * from ma_table where mon_chp in ('a', 'b', 'c', 'd') Ce qui équivaut à Select * from ma_table where mon_chp = 'a' or mon_chp = 'b' or mon_chp = 'c' or mon_chp = 'd' Mais cela, à ma connaissance, n'existe pas pour le like
petit-ourson Posté 23 Juin 2008 Posté 23 Juin 2008 En utilisant REGEXP (?) : SELECT *FROM `ma_table` WHERE `title` REGEXP 'viagra|poker|cialis'LIMIT 0, 200 Par contre il faut voir si niveau performance cela convient, je n'en ai aucune idée.
Sebastien Posté 23 Juin 2008 Auteur Posté 23 Juin 2008 Merci bien je vais assayer ces différentes méthodes
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant