Je veux écrire une telle requête:

SELECT * FROM db WHERE ID = id AND Text != text OR Text = text

Je veux dire que les clauses ID = id et Text != text doivent être combinées avec et, et elles doivent être combinées avec OR avec la dernière clause. Comment puis je faire ça? Merci.

0
jason 28 déc. 2015 à 12:50

6 réponses

Meilleure réponse
SELECT * FROM db WHERE (ID = id AND Text != text) OR Text = text

Vous devez toujours utiliser des parenthèses lorsque vous combinez and et or

5
HoneyBadger 28 déc. 2015 à 09:52
SELECT * FROM db WHERE (ID = id AND Text != text) OR Text = text

Utilisez des crochets pour séparer deux clauses

3
Akshey Bhat 28 déc. 2015 à 09:53
SELECT *
FROM   db
WHERE  (ID = id AND TEXT != TEXT)
       OR 
       OR TEXT = TEXT
1
pedram 28 déc. 2015 à 09:54
SELECT * FROM db WHERE (ID = id AND Text != text) OR Text = text
1
pedram 28 déc. 2015 à 09:56

UTILISER l'opérateur logique (ET / OU):

SELECT * FROM db WHERE (ID = id AND Text != text) OR Text = text

Ou vous pouvez utiliser CASE:

SELECT * FROM db where 
(CASE WHEN ID = id THEN (CASE WHEN Text != text THEN 1 ELSE 0 END) ELSE 0 end = 1) OR
(CASE WHEN Text = text THEN 1 ELSE 0 END) = 1
0
jitendra joshi 28 déc. 2015 à 10:28

Essayez ceci: SELECT * FROM db WHERE (ID = id ET Texte! = Texte) OU Texte = texte

0
Suvro 28 déc. 2015 à 12:37