Abfrage mit UND und ODER

mammuteffect

Mitglied
Hallo,
ich habe mal zwei, für Leute die sich mit mySQL auskennen, sicherliche simple Fragen:
Und zwar möchte ich eine Abfrage, die in der Where-Klausel enthält: wo abt1 ODER abt2 Fussball ist UND die Position Torwart ist.
Habe mal durch die Referenzen gelesen und es mir OR probiert, habe aber nur wirres Zeug rausbekommen.

Und zweitens: Ich möchte eine Sortierung nach Torwart, Abwehr, Mittelfeld und Sturm vornehmen und auch in dieser Reihenfolge. Alphabetisch ist deshalb ja nicht. Auch für eine Lösung hier für wäre ich sehr dankbar.

MfG,

eFFect
 
Zu 1:
Code:
... WHERE (`abt1` LIKE 'Fussball' OR `abt2` LIKE 'Fussball') AND `Position`=Torwart
Zu 2:
Das ist etwas komplizierter. Ich würde empfehlen, dass Du die Reihenfolge im Datenmodell hinterlegst. Du hättest dann eine Tabelle mit id (int, PK), Position (Char) und Reihenfolge (int). In der Personentabelle verweist Du mit einem Fremdschlüssel auf die ID. In der Abfrage joinst Du die Tabelle nach dem Fremdschlüssel und der ID und sortierst nach dem Wert in 'Reihenfolge'.
Eine Alternative wäre, dass Du ein Aliasfeld in der Abfrage belegst. Dazu müsstest Du viele IFs verschachteln und entsprechend der gewünschten Sortierung einen Wert angeben. Dann sortierst Du nach dem erstellten Aliasfeld.

Gruß hpvw
 
@hpvw

Hast recht!

Hmm. Ich dachte mal Probleme mit LIKE und exakter Suche gehabt zu haben.

So kann man sich irren!

vop
 
vop hat gesagt.:
Hmm. Ich dachte mal Probleme mit LIKE und exakter Suche gehabt zu haben.
Und ich meine, ich hatte in irgendeiner alten 3er-MySQL-Version mal Probleme beim Charvergleich mit Gleichheitszeichen. Das ist aber so lange her, dass ich nicht mehr weiß, ob es an mir oder der Version von MySQL lag. Vermutlich hatte ich irgendwas versaut, was ich beim umschreiben des Querys mit LIKE gleich mit entfernt habe. Aber seit dem habe ich eine Phobie und verwende immer LIKE.
So unterschiedlich sind die Erfahrungen...

Gruß hpvw
 
Ah, wenn ich die einzelnen Datensätze per PHP-Script eintrage könnte ich die Eingabe der Reihenfolge ja auch als if-Anweisung (wenn pos=torwart dann folge=1) automatisieren und das Problem wäre gelöst.
Vielen herzlichen Dank für die schnelle Hilfe!
 

Neue Beiträge

Zurück