2010-12-09 4 views
0

J'essaie d'exclure les lignes sélectionnées en fonction de la première lettre d'une colonne. -À-dire toutes les lignes de la colonne 'colonnes ne commence pas avec Y, A ou B.SQL multiple exclusif comme

SELECT * 
FROM tbl 
WHERE col NOT LIKE 'Y%' 
    AND col NOT LIKE 'A%' 
    AND col NOT LIKE 'B%' 

J'ai essayé quelques variantes telles que l'utilisation ou à la place de ET ou quelque chose comme:

SELECT * 
FROM tbl 
WHERE col NOT IN ('Y%', 'A%', 'B%') 

Aucun d'entre eux me donner les résultats escomptés,

THanks

Répondre

1

Désolé, mais je l'ai trouvé que je suis en utilisant MS-Access SQL qui diffère de MySQL. Le caractère générique % ne fonctionne pas pour MS Access

Ce n'était qu'un problème d'orthographe. Ainsi, la version corrigée de ce SQL est:

SELECT * 
FROM tbl 
WHERE col NOT LIKE 'Y*' 
AND col NOT LIKE 'A*' 
AND col NOT LIKE 'B*' 

Meilleures salutations,

+1

Ah OK, la bonne réponse est: "Ne pas utiliser Access pour rien, jamais" :) – Dmitri

0

Votre premier exemple devrait fonctionner - vous pouvez poster un exemple de ce qui ne va pas avec les résultats? Le deuxième exemple ne fonctionnera évidemment pas.

La plupart des bases de données prennent également en charge le filtrage par expressions régulières, vous souhaiterez peut-être y jeter un coup d'œil.