Aller au contenu

Ou non exclusif dans mysql ?


Sebastien

Sujets conseillés

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

Lien vers le commentaire
Partager sur d’autres sites

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 ?

Lien vers le commentaire
Partager sur d’autres sites

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 :(

Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...