2017-02-23 3 views
0

J'ai 5 champs dans la base de données. Requête where clause a 5 paramètres. Maintenant, si je ne passe aucun paramètre, il devrait récupérer tous les enregistrements. Si je passe seulement le second paramètre, il récupère en fonction de ce paramètre. mais si je passe 2ème et tout paramètre après cela il ne prend que le 2ème paramètre, il n'utilise pas le paramètre après le 2ème paramètre. J'utilise ou opérateur:Faire un filtre de recherche

requête

select address from table1 where state ='' or city ='Aa' or address_line ='school' 

il doit récupérer tous les enregistrements qui a la ville = Ab et address_line = école. Mais il récupère basé sur la ville, il n'utilise pas le address_line.

+0

Voir http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-very-simple- sql-query – Strawberry

+0

Je ne comprends pas ,, – askandanswer

+0

Pourquoi dites-vous et par des mots et écrire ou dans votre requête ?? –

Répondre

0

Je pense que vous avez au hasard la deuxième OU à un ET pour elle de choisir aussi le second paramètre

Et vous avez dit dans votre litteraly explication « et » alors pourquoi Stil écrire ou.

+0

car la requête peut avoir un 2ème paramètre ou ne pas le faire. – askandanswer

+0

oui. Utilisez OU s'il y a 2 réponses. et seulement 1 bonne réponse. et ET si vous avez 2 bonnes réponses dans ce genre de situations –