Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Сортировка строк в соответсвии с условием IN
 
 автор: admiral   (10.12.2009 в 21:57)   письмо автору
 
 

Запрос - SELECT * FROM table WHERE id_uin IN(13,26,23,21,1,30,36)

В результате запрос сортирует по ключевому полю. А нужно в сответствии с порядком IN указанным в запросе. Пологаю следует отказаться от IN? И естетсвенно одним запросом не сделать.

  Ответить  
 
 автор: Trianon   (10.12.2009 в 22:03)   письмо автору
 
   для: admiral   (10.12.2009 в 21:57)
 

>В результате запрос сортирует по ключевому полю.

В результате запрос не сортирует ни че го , а лепит всё внавал. Потому что конструкции ORDER BY нет.


Одним запросом сделать можно, приводить его не буду, потому что малоэффективный он.
Кому приспичит, тот найдет.

  Ответить  
 
 автор: admiral   (10.12.2009 в 22:13)   письмо автору
 
   для: Trianon   (10.12.2009 в 22:03)
 

>>В результате запрос сортирует по ключевому полю.
>
>В результате запрос не сортирует ни че го , а лепит всё внавал. Потому что конструкции ORDER BY нет.

Если бы ORDER BY позволял сортировать по условию, а не по полю, то ORDER BY в запросе был бы уместен.

>Одним запросом сделать можно, приводить его не буду, потому что малоэффективный он.
>Кому приспичит, тот найдет.
тоесть ресурсоемкий?
Просто в условии IN максимум 10 значений присутсвуют, и id_uin содержит индекс

Справился так

<?
 
foreach($str_id AS $uin_id)
         {
             
$sqlmysql_query("SELECT * FROM table WHERE id_uin = $uin_id");
              while(
$res mysql_fetch_object($sql))
              {
                  
// ...
              
}
         }

?>

  Ответить  
 
 автор: Trianon   (10.12.2009 в 23:07)   письмо автору
 
   для: admiral   (10.12.2009 в 22:13)
 

ORDER BY FIND_IN_SET()

>Если бы ORDER BY позволял сортировать по условию, а не по полю.

ORDER BY позволяет сортировать по критерию. Это включает и условие и поле и еще тучу всего.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования