0
votes

2 Si condition une phrase SQL

Je veux chercher que les lignes SQL:

SELECT aa.*
FROM Answers AS aa
WHERE event_id = 1 AND
      ( (aa.form_item_id = 1 AND form_item_reply = "John") AND
        (aa.form_item_id = 2 AND form_item_reply = "Doe")
      )
ORDER BY aa.id DESC


3 commentaires

Votre état ne peut pas être valide sur une seule ligne. Par conséquent, je ne comprends pas la question.


L'endroit où cause ressemble à un réponses rangée dans le tableau à la fois. form_item_id ne peut pas être 1 et 2 en même temps. Êtes-vous peut-être cherché à la recherche de tous les identifiants d'événement pour lesquels les deux réponses 1 / John, 2 / Doe existent? Quelle version de mysql utilisez-vous?


Vous n'avez pas besoin de parenthèses ni d'alias ici, sauf si vous prévoyez d'utiliser ou aussi peut-être ...


3 Réponses :


0
votes

Vous pouvez utiliser ou

SELECT aa.* FROM Answers AS aa WHERE event_id = 1 AND 
( 
(aa.form_item_id = 1 AND form_item_reply = "John") 
OR (aa.form_item_id = 2 AND form_item_reply = "Doe") 
) ORDER BY aa.id DESC


0 commentaires

0
votes

Peut-être que vous voulez juste ou : xxx


1 commentaires

Ce n'est pas que je veux, il doit s'assurer que les deux d'entre eux



0
votes

Je les ai essayés tous. Mais je veux qu'il doit donner 2 conditions,

form_item_id = 1 et form_Item_Reply = 'John' form_item_id = 2 et form_Item_Reply = 'DOE'

Il faut en sorte de s'assurer que les deux d'entre eux doivent en assurer les deux.

Quand j'essaie et il ne donne aucun résultat, Quand j'essaie ou , il donne 2 résultats (correct), mais quand j'ai changé l'un d'entre eux ex (form_item_reply = "dolly") , il continue à donner le même résultat que 2 résultat , Il n'y a pas de changement sur le résultat


0 commentaires