2017-07-15 1 views
1

J'ai essayé de sélectionner dans ma table en utilisant LIKE OR AND sql query. Je veux lister tous les produits que le type de produit est bakery-catering et en même temps en utilisant comme pour l'obtenir de l'emplacement apparié. Mais la requête SQL ci-dessous montre tous les produits dans l'emplacement correspondant en ignorant le type de produit que je veux.Combiner SQL Requête COMME ET ET pour lister le produit lorsque le type est vrai

SELECT * FROM productservice 
WHERE product_address LIKE "Enugu-ezike,%" 
OR product_address_two LIKE "ezike district%" 
OR product_description LIKE "cooking%" 
AND product_type = "bakery-catering" 

Ceci montre tous les types de produits de l'endroit recherché. S'il vous plaît comment puis-je résoudre ce problème?

+0

Utilisez des parenthèses pour regrouper vos termes logiques. –

+0

@GyroGearloose, s'il vous plaît suis nouveau à la programmation, pouvez-vous aider d'une manière pratique. – Peter

+0

Le "ET" s'applique uniquement au LIKE précédent. Vous devez faire: SELECT * FROM ProductService OU (product_address LIKE "Enugu-Ezike,%" OU product_address_two LIKE "district Ezike%" OU PRODUCT_DESCRIPTION LIKE "cuisson%") ET product_type = "boulangerie-traiteur" - Note le "(" et le ")", c'est comme en maths: 5 + 4 * 3 versus (5 + 4) * 3. –

Répondre

1
SELECT * FROM productService 
WHERE 
    (
    product_address LIKE 'Enugu-ezike,%' OR 
    product_address_two LIKE 'ezike district%' OR 
    product_description LIKE 'cooking%' 
    ) 
    AND product_type = 'bakery-catering' 

OU si vous insistez à utiliser des guillemets doubles puis,

SELECT * FROM productservice 
WHERE 
    (
    product_address LIKE "Enugu-ezike,%" OR 
    product_address_two LIKE "ezike district%" OR 
    product_description LIKE "cooking%" 
    ) 
    AND product_type = "bakery-catering" 
+0

cela a fonctionné, pouvez-vous m'expliquer ce que les parenthèses d'ouverture et de fermeture ont à faire sur cela? – Peter

+0

@PhilipJems dans la version sans regroupement, l'ET ne s'applique qu'au dernier LIKE, ici il s'applique à toutes les expressions LIKE ... OU ... LIKE ... OU ... LIKE. –

+0

oui. Gyro l'a très bien expliqué. Juste tout entre parenthèses() comme une déclaration. et d'autres parties comme une autre déclaration. – ViKiNG

0
SELECT * FROM productservice 
WHERE product_type = "bakery-catering" 
AND product_address LIKE "Enugu-ezike,%" 
AND product_address_two LIKE "ezike district%" 
AND product_description LIKE "cooking%" 

si vous avez 50 lignes de product_type = boulangerie vacances
si vous avez 40 lignes de product_type = boulangerie -catering et product_description = "cooking%"
si vous avez 20 lignes de product_type = boulangerie-catering et product_description = cooking% et product_address_two = "ezike district%"
si vous avez 10 lignes de product_type = boulangerie vacances et PRODUCT_DESCRIPTION = cuisson% et product_address_two = "Ezike% district" et product_address = "Enugu-Ezike,%"

alors cette requête vous donnera seulement 10 lignes de sélection des critères