Autor | Zpráva | ||
---|---|---|---|
AM_ Profil |
#1 · Zasláno: 9. 6. 2010, 10:59:50
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 |
#2 · Zasláno: 9. 6. 2010, 11:11:32
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 * |
#3 · Zasláno: 9. 6. 2010, 11:22:32
SELECT * FROM items WHERE id IN (20,15,80,2,14) ORDER BY FIELD(id,20,15,80,2,14) |
||
AM_ Profil |
#4 · Zasláno: 9. 6. 2010, 11:51:24
__construct:
není pravda, nefunguje Kajman: to je ono, díky :) |
||
Časová prodleva: 14 let
|
0