Salut Vinzenz!
Ich muss mich entschuldigen, ich habe deine Antwort neben dem Gespräch mit Ekki komplett überschaut. Das Problem war ein falscher Typecast von meiner Seite. Vielen Dank aber für den Aufwand den du betrieben hast um mir eine Antwort zu geben!
Ich hab schon in anderen Postings gesehen, dass du wohl ein ziemlicher MySql-Fachmann zu sein scheinst.
Darum noch ein Frage: Gibt es eine Möglichkeit, eine Query der folgenden (sehr langsamen) Form bei gleicher Funktionalität zu optimieren?
SELECT Titel,Untertitel,Reihe,Urheber,Herausgeber,Medienart,stichwortliste.Id
FROM medienliste,stichwortliste
WHERE medienliste.Id=stichworliste.Id
GROUP BY stichwortliste.Id
HAVING
SUM(Stichwort='schweiz')>=1
AND SUM(Stichwort='demografie')>=1
ORDER BY
IFNULL((Titel = 'schweiz demografie'),0) DESC,
IFNULL((Untertitel = 'schweiz demografie'),0) DESC,
IFNULL((Reihe = 'schweiz demografie'),0) DESC,
IFNULL(CAST(Titel LIKE '%schweiz%' AS UNSIGNED) + CAST(Titel LIKE '%demografie%' AS UNSIGNED),0) DESC,
IFNULL(CAST(Untertitel LIKE '%schweiz%' AS UNSIGNED) + CAST(Untertitel LIKE '%demografie%' AS UNSIGNED),0) DESC,
IFNULL(CAST(Reihe LIKE '%schweiz%' AS UNSIGNED) + CAST(Reihe LIKE '%demografie%' AS UNSIGNED),0) DESC,
Titel,Untertitel
LIMIT 0,10
Ansonsten muss ich mir dann überlegen, bestimmte Kriterien wegzulassen...
Wie du vermutlich erraten kannst, handelt es sich um eine Suchabfrage in einer Bibliothekdatenbank, die gleichzeitig die Resultate nach einer bestimmten Priorität ordnet, in diesem Falle mit den Suchbegriffen "schweiz" und "demografie". Gibts eine Möglichkeit? -SQL ist wie schon ausgeführt neu für mich, ich habe grundsätzlich einfach die Befehle die ich benötigt habe zusammengesucht und zusammengesetzt, ohne Wissen über Performance der Datenbank oder ähnliches.
es handelt sich um 2 Tabellen:
medienlist mit spalten (titel,untertitel,reihe,id,etc)
und der stichwortliste mit spalten (id,stichwort)
gruss
stewe