mysql пользовательский вид

У меня есть запрос как это: SELECT * FROM table WHERE id IN (2,4,1,5,3);

Однако, когда я распечатываю его, это автоматически отсортировало 1,2,3,4,5. Как мы можем поддержать порядок (2,4,1,5,3), не изменяя структуру базы данных?

Спасибо!

18
задан Haim Evgi 1 February 2010 в 08:32
поделиться

1 ответ

Я спрашиваю это:

MySQL порядок по вопросу

Ответы, которые я получаю, и весь кредит принадлежат им:

Вы можете использовать оператор чехол для указания заказа:

SELECT * FROM table
WHERE id IN (3,6,1,8,9)
ORDER BY CASE id WHEN 3 THEN 1
                 WHEN 6 THEN 2
                 WHEN 1 THEN 3
                 WHEN 8 THEN 4
                 WHEN 9 THEN 5
         END

в PHP ты можешь сделать это как:

<?php

$my_array =  array (3,6,1,8,9) ;

$sql = 'SELECT * FROM table  WHERE id IN (3,6,1,8,9)';

$sql .= "\nORDER BY CASE id\n";
foreach($my_array as $k => $v){
    $sql .= 'WHEN ' . $v . ' THEN ' . $k . "\n";
}
$sql .= 'END ';

echo $sql;

?>
20
ответ дан 30 November 2019 в 05:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: