|
|
|
| У меня запрос примерно следующего содержания:
select a.*, b.id
from table1 as a, table2 as b
where (a.id=5 or a.id=2 or a.id=9 or a.id=6 )
and a.comp_id = b.id
|
После его выполнения выдаются поля с сортьровкой по a.id, т.е. сначала идет поле с id = 2, затем 5,6,9
А мне нужно что результат выдаватся в той последовательности как я указала в запросе id.
Как можно добится такой сортировки? | |
|
|
|
|
|
|
|
для: LO
(14.03.2006 в 17:46)
| | Если MySQL старше 3 версии, то можно воспользоваться оператором UNION.
mysql-> select a.*, b.id from table1 as a, table2 as b where a.id=5 and a.comp_id = b.id UNION select a.*, b.id from table1 as a, table2 as b where a.id=2 and a.comp_id = b.id UNION select a.*, b.id from table1 as a, table2 as b where a.id=9 and a.comp_id = b.id UNION select a.*, b.id from table1 as a, table2 as b where a.id=6 and a.comp_id = b.id
|
Похожая тема:
http://softtime.ru/forum/read.php?id_forum=3&id_theme=13907&page=1 | |
|
|
|
|
|
|
|
для: LO
(14.03.2006 в 17:46)
| |
SELECT a.*, b.id
FROM table1 AS a, table2 AS b
WHERE a.id IN (5,2,9,6) AND a.comp_id = b.id
ORDER BY locate(concat(',',a.id,','), ',5,2,9,6,')
|
| |
|
|
|
|
|
|
|
для: Trianon
(14.03.2006 в 18:34)
| | Браво!
3 минуты только соображал как это работает, а потом, в сомнениях, полез читать в мануале про принципы сортировки в mysql. Похоже что действительно работает:)) | |
|
|
|
|
|
|
|
для: Loki
(14.03.2006 в 21:48)
| | Это просто я вчера MySQLьного мануала немного больше прочитал, чем смог усвоить. :)
Я искал какую-нибудь функцию наподобие sprintf(), а на глаза всё время лезла эта LOCATE() :-(
Надо же было от нее как-то избавиться. Не надо самому - отдай соседу. | |
|
|
|