8
votes

Où déclaration avec plusieurs 'pas comme'

J'essaie d'écrire l'énoncé suivant: xxx

traduction: Sélectionnez où le champ est comme Pandora et non comme la radio, le numérique ou Internet.

est Il y a un moyen d'écrire cette affirmation sans écrire, pas comme 3 fois avec et entre entre?

merci


1 commentaires

>> Existe-t-il un moyen d'écrire cette déclaration sans écrire, pas comme 3 fois avec AND entre? << Quel est le problème avec l'écriture comme 3 fois?


3 Réponses :


2
votes

Si vous recherchez des mots spécifiques, vous pouvez utiliser pas dans () xxx

si vous avez besoin du wildcard % Dans votre recherche, vous devez utiliser plusieurs comme s.


1 commentaires

Comment faire comme ? ex .: lien pas dans ?



9
votes

Si "champ" n'est pas que des mots simples, vous devez faire quelque chose comme ceci:

SELECT * FROM table WHERE field LIKE '%Pandora%' AND field NOT LIKE '%radio%' AND field NOT LIKE '%internet%' and field NOT LIKE '%digital%';


0 commentaires

7
votes

Tout d'abord, votre requête est redondante, dans laquelle si champ code> est comme code> 'Pandora' code>, alors les autres conditions vont par défaut renvoyer false.

Il n'y a pas possible de manière possible. que code> peut être égal à 'pandora' code>, 'radio' code>, 'numérique' code> et " 'internet' code>. p>

En conséquence, vous pouvez simplifier votre requête en utilisant l'exemple suivant: p> xxx pré>

si les deux conditions représentent deux Champs séparés, vous pouvez alors utiliser Regexp code> a > opérateur à appliquer le Principe sec tout en permettant encore Correspondance de modèle : P>

SELECT *
  FROM example
 WHERE field_1 = 'Pandora'
   AND field_2 NOT REGEXP '^(radio|digital|internet)$';


0 commentaires