60734
Goto Top

mysql suchergebnisse sortieren

hallo,

ich habe für eine private Website eine suche in php programmiert.
Das funktioniert auch soweit auch schon ganz gut, nur mit den Leerzeichen gibt es probleme. Leider.
Und zwar.

Wenn einer einen Begriff eingibt z.B. "administrator forum"
dann würde das skript denn string trennen in "administrator" und "forum"

und die sql abfrage wäre dann SELECT * FROM test WHERE begriffe LIKE "%administrator%" OR begriffe LIKE "%forum%"

und dann zeigt er mir alle Ergebnisse an, die entweder administrator, forum oder beides enthalten. Ich möchte aber,
dass das Skript mir die einträge sortiert, sodass die Zeile, in der beide Begriffe vorkommen zuerst angezeigt wird und net irgendwo zwischendrin.

Kann man das evtl. mit ORDER BY lösen?

Vielen Dank schonmal

Content-ID: 95824

Url: https://administrator.de/forum/mysql-suchergebnisse-sortieren-95824.html

Ausgedruckt am: 10.04.2025 um 16:04 Uhr

masterG
masterG 01.09.2008 um 19:52:30 Uhr
Goto Top
Klar entweder mit:
ORDER BY DESC
oder
ORDER BY ASC
filippg
filippg 01.09.2008 um 21:47:05 Uhr
Goto Top
Hallo,

man kann erst nach dem einen Fragen, dann nach dem anderen, und dann die Ergebnisse zusammenfügen. Aussehen tut das dann so:

SELECT * FROM test WHERE begriffe LIKE "%administrator%" AND begriffe LIKE "%forum%"
UNION
SELECT * FROM test WHERE begriffe LIKE "%administrator%" OR begriffe LIKE "%forum%"

Die ersten Ergebnisse sind dann die in denen beides vorkommt, dann die, die nur eins von beiden haben. Bei MS SQL geht das, bei MySQL sollte das auch funktionieren. Allerdings könnte man vorher nochmal in der Referenz schauen, ob garantiert ist, dass die Ergebnisse nicht wieder verwürfelt werden. Doppelte Zeilen (die aus dem ersten Query erfüllen ja auch alle die Bedingung für den zweiten) dürften bei einem einfachen UNION nicht auftreten (MS SQL).

Gruß

Filipp
60734
60734 02.09.2008 um 07:51:00 Uhr
Goto Top
Ok, danke!

Hat funktioniert!

gruss markus
masterG
masterG 03.09.2008 um 14:23:28 Uhr
Goto Top
Zitat von @60734:
Ok, danke!

Hat funktioniert!

gruss markus

Dann ist's gut!