当前位置: 首页 > 面试题库 >

mysql自定义排序

田权
2023-03-14
问题内容

我有这样的查询: SELECT * FROM table WHERE id IN (2,4,1,5,3);

但是,当我打印出来时,它会自动进行1,2,3,4,5的排序。我们如何在不更改数据库结构的情况下保持顺序(2,4,1,5,3)?

谢谢!


问题答案:

我问这个:

mysql按问题排序

我得到的答案和所有功劳归于他们:

您可以使用CASE运算符指定顺序:

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;

?>


 类似资料:
  • 问题内容: 我正在处理大量旧数据(从平面文件db转换),其中字段的格式设置为输入记录的年份的最后2位,然后是4位的增量… 例如,1998年创建的第三条记录将为“ 980003”,而2004年创建的第十一条记录将为“ 040011”。 我无法更改这些值- 它们通过他们的公司存在,已经在州,客户等中注册。我知道将年份和其余年份分隔到单独的列中会很好,但这是不可能的。我什至不能真正做到“内部”,因为每一

  • 问题内容: 我有一个问题:这是由ElementTree库形成的列表列表。 word1..4可能包含Unicode字符,即(â,ü,ç)。 我想按我的自定义字母对列表列表进行排序。 我知道如何从这里按python中的单词对自定义字母进行排序 我也知道如何从此处http://wiki.python.org/moin/HowTo/Sorting按键排序 问题是我找不到如何应用这两种方法对“列表列表”进行

  • 有的时候我们希望排序不是仅仅按照自然顺序排序。例如,我们希望按照字符串的长度来对一个字符串数组排序而不是按照字母顺序来排序。这里我们介绍一下Go的自定义排序。 package main import "sort" import "fmt" // 为了能够使用自定义函数来排序,我们需要一个 // 对应的排序类型,比如这里我们为内置的字符串 // 数组定义了一个别名ByLength type ByLe

  • 问题内容: 我有一个[],其中有一些数字(距离某个点的距离)。 我想在第一个数组中创建索引数组,其中索引按距离排序。 例如 假设 那我想得到一个像这样的数组: 因此,如果要第二近距离,可以检查dist [sortedIndexes [1]]。 我不想对原始数组进行排序,而只是根据距离对索引数组进行排序。 更新1:我正在尝试的代码如下所示: 但是我遇到了一些错误,其中最“有问题”的是:“ 无法引用用

  • 问题内容: 如何在Django中定义特定顺序? 具体来说,如果我有QuerySet这样的话:。 我正在寻找以下商品时,按常规订购(使用)会给我。 定义自己的订购技术的正确方法是什么? 问题答案: 据我所知,没有办法以这种方式指定数据库端的排序,因为它过于特定于后端。你可能希望采用老式的Python排序: 如果你发现自己非常需要这种排序,那么建议你为执行排序的模型制作一个自定义子类。就像是:

  • 问题内容: 我有以下数据框,我想先按“重要性”排序,然后再按“名称”排序: 我一直在努力做到这一点使用中提供了答案这个职位,但我不能得到它的工作。 最终结果应该是这样的 问题答案: 一种方法是使用自定义字典创建“等级”列,然后使用进行排序,然后在排序后删除该列: