Voici ma requête MySQL qui ignore l'état de champ de catégorie, le résultat renvoie également les résultats d'autres catégories qui ne sont pas mentionnés dans la requête, voici ma déclaration de requête mysqlMySQL retourne un résultat erroné sur PHP recherche requête
select *,classifieds.id as id
from classifieds,classifieds_meta
where
category=1
AND meta_key='vehicle_make'
and meta_value=2
OR meta_key='vehicle_make'
and meta_value=3
AND (meta_key='vehicle_mileage' and meta_value=9)
OR (meta_key='vehicle_mileage' and meta_value=10)
OR (meta_key='vehicle_mileage' and meta_value=11)
AND classifieds.id=classifieds_meta.classifieds_id
GROUP BY classifieds.id
la déclaration sql ci-dessus renvoie le résultat de la catégorie 1 et 6 au lieu de 1, quelqu'un peut-il aider s'il vous plaît à ce sujet?
Vous sélectionnez '*' qui sélectionne tout dans les deux tables. Si vous voulez seulement tout des petites annonces, vous devriez utiliser 'classifieds. *' – James
Vous mélangez les clauses 'and' et' or', ce qui conduira DEFINITIVEMENT à des résultats incorrects, à moins que vous sachiez EXACTEMENT ce que vous faites et compreniez mysql's règles de priorité d'opérateur: http://dev.mysql.com/doc/refman/5.0/en/operator-precedence.html –
Ou simplement changer cette ligne 'category = 1' à' category = 1 AND category! = 6'. – JakeGould