Autor Zpráva
AM_
Profil
Ahoj,
tvořím na webu vyhledávání a mám cca takovouto představu:
vyhledávač nejdřív projde všechny položky, přidělí jim určité skóre (toto bude dělat PHP, na MySQL je za tím moc složitá logika) a následně vybere všechny prvky s nenulovým skóre seřazené dle skóre (tedy nejrelevantnější výsledek hledání bude první). Představuji si to tak, že PHP projde všechny položky (jsou jich desítky max. stovky, takže to takto lze řešit) a vyplivne nějaké pole - sekvenci ID vybraných položek seřazenou podle relevantnosti. Tedy např.
array(20,15,80,2,14) znamená 5 nalezených položek, nejrelevantnější ID 20, nejméně relevantní shoda ID 14.
Můj dotaz zní, lze nějak z databáze vybrat položky jedním dotazem v tomto pořadí? Nějak takto:
SELECT * FROM items WHERE id IN (20,15,80,2,14) ORDER BY ???
__construct
Profil
Pokiaľ pošleš na DB tento dotaz
SELECT * FROM items WHERE id IN (20,15,80,2,14)

tak výsledky budú radené podľa id v poradí v akom si určil v IN
Kajman_
Profil *
SELECT * FROM items WHERE id IN (20,15,80,2,14) ORDER BY FIELD(id,20,15,80,2,14)
AM_
Profil
__construct:
není pravda, nefunguje

Kajman:
to je ono, díky :)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0