Also ich ', einige Code debuggen und es gibt die folgende SQL-Abfrage (vereinfacht von dem, was es wirklich ist).Wie wählt man aus, wo x gleich mehreren Werten ist?
SELECT ads.*, location.county
FROM ads
LEFT JOIN location ON location.county = ads.county_id
WHERE ads.published = 1
AND ads.type = 13
AND ads.county_id = 2
OR ads.county_id = 5
OR ads.county_id = 7
OR ads.county_id = 9
Ich bin immer sehr seltsame Ergebnisse aus der Abfrage und ich denke das, weil der erste oder negiert die AND ‚s, die vor ihm sind. So bekomme ich Ergebnisse für Anzeigen aller Art und nicht nur von Typ 13. Jedes Mal, wenn die Abfrage aufgerufen wird, kann es viele Bezirke geben, die nachschlagen müssen oder nur ein paar.
Jede Hilfe auf dem richtigen Weg, um dies zu tun würde geschätzt.
Ich denke, die IN-Version ist einfacher zu lesen und weniger wahrscheinlich, unerwartete Ergebnisse zu liefern. – DOK
es ist auch *** wesentlich schneller, zumindest auf MySQL – warren
In meinem Fall kommen die Werte in der 'IN' aus dem Ergebnis einer anderen Select-Abfrage, wie gehe ich damit um? –