MySql查询结果按照指定顺序排序

Mysql这功能做的很好用啊!!

让查询结果按照指定顺序排序

----------------------------------------------------------------------

表结构如下:
mysql> select * from test;
+----+-------+
| id | name  |
+----+-------+
|  1 | test1 |
|  2 | test2 |
|  3 | test3 |
|  4 | test4 |
|  5 | test5 |
+----+-------+

执行以下SQL:
mysql> select * from test where id in(3,1,5);
+----+-------+
| id | name  |
+----+-------+
|  1 | test1 |
|  3 | test3 |
|  5 | test5 |
+----+-------+
3 rows in set (0.00 sec)

这个select在mysql中得结果会自动按照id升序排列,
但是我想执行"select * from test where id in(3,1,5);"的结果按照in中得条件排序,即:3,1,5,想得到的结果如下:
id   name
3    test3
1    test1
5    test5

方法如下:
select * from test where id in(3,1,5) order by find_in_set(id,‘3,1,5‘);
select * from test where id in(3,1,5) order by substring_index(‘3,1,2‘,id,1);

时间: 2024-10-11 12:00:20

MySql查询结果按照指定顺序排序的相关文章

Mysql查询之 指定顺序排序

最近做一个大屏展示项目,类似于机场,火车站那种展示班次信息的那种,不过展示的内容要复杂的多,其中部分数据如下: 前端主要用Vue框架,要求后端数据在前端展示,第一:进厂,出厂指标不固定(可能6,也可能以后7,8个):第二:无"数值"值的用斜杠代替:第三:进出厂指标名字一定要符合如上图指定的名字(后端数据库查询出来的名字和前端指定的名字不一样,以及单位中带有 ">1",">0.3"之类的,所以不能直接从后端查询 ,名字+单位 放在前端,

SQL学习之使用order by 依照指定顺序排序或自己定义顺序排序

我们通常须要依据客户需求对于查询出来的结果给客户提供自己定义的排序方式,那么我们通常sql须要实现方式都有哪些,參考很多其它资料总结例如以下(不完好的和错误望大家指出): 一.假设我们仅仅是对于在某个程序中的应用是须要依照例如以下的方式排序,我们仅仅需在SQL语句级别设置排序方式: 1.依照oracled的默认方式排序:select * from table_name order by  col_name  (desc|asc);(默觉得升序或无序对于升降仅仅有在数字字段); 2.依照自己定义的

SQL学习之使用order by 按照指定顺序排序或自定义顺序排序

我们通常需要根据客户需求对于查询出来的结果给客户提供自定义的排序方式,那么我们通常sql需要实现方式都有哪些,参考更多资料总结如下(不完善的和错误望大家指出): 一.如果我们只是对于在某个程序中的应用是需要按照如下的方式排序,我们只需在SQL语句级别设置排序方式: 1.按照oracled的默认方式排序:select * from table_name order by  col_name  (desc|asc);(默认为升序或无序对于升降只有在数字字段); 2.按照自定义的顺序排序:   sel

Mysql查询按照某字段指定顺序排序

在项目当中用到Sphinx的时候,很多人遇到了这样的问题:使用mysql+Sphinx检索出了相关度的ID后,如何按照指定ID在Mysql中进行排序呢?这里是我在项目中的解决方法: 1 SELECT * FROM documents WHERE id IN (5,3,6,1) ORDER BY FIELD(id,5,3,6,1); 或者: 1 SELECT * FROM documents WHERE id IN (5,3,6,1) ORDER BY substring_index((id,5,

mysql查询语句的执行顺序(重点)

一 SELECT语句关键字的定义顺序 SELECT DISTINCT <select_list> FROM <left_table> <join_type> JOIN <right_table> ON <join_condition> WHERE <where_condition> GROUP BY <group_by_list> HAVING <having_condition> ORDER BY <o

mysql查询并导出指定数据,select from,where,into outfile导出,fields terminated by分隔导出数据

mysql -uxxx -pyyy use lottery; select count(id) from mop_bet_order_history where created_at < '2015-11-01'; 统计mop_order_history表中2015-11-01之前的数据条数 count(id)统计条数 select * from mop_bet_order_history where created_at < '2015-11-01' into outfile '/data/

对聚集表查询的时候,未显式指定排序列的时候,默认查询结果的顺序一定是按照聚集索引顺序排序的吗

在sql server 中,如果一张表存在聚集索引的时候,大多数情况下,如果进行select * from TableName查询,默认的返回顺序是按照聚集所在列的顺序返回的 但是,在一张表存在聚集索引的时候,并不一定所有的情况都是按照聚集索引列的顺序排列的, 下面开始测试 create table TestDefaultOrder ( Id int identity(1,1) primary key,--主键上默认会建立聚集索引 Col2 char(5), COL3 char(5) ) --写

MySQL查询in操作 查询结果按in集合顺序显示_Mysql_脚本之家

body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI",Tahoma,Helvetica,Sans-Serif,"Microsoft YaHei", Georgia,Helvetica,Arial,sans-serif,宋体, PMingLiU,serif; font-size: 10.5pt; line-height: 1.5;

MySQL 查询语句执行顺序

Mysql查询语句时候一共分为11步,其中每一个操作都会产生一张虚拟的表,这个虚拟的表作为一个处理的输入,只是这些虚拟的表对用户来说是透明的,但是只有最后一个虚拟的表才会被作为结果返回. 语句执行顺序 : 顺序 名称 内容 1 SELECT 命令发起 2 * 或 AVG(字段)等 查询内容 3 FROM 查询位置 4 WHERE 条件查询 5 GROUP BY 分组 6 HAVING 筛选 7 ORDER BY (ASC/DESC) 排序 8 LIMIT 限制结果数 1.单表查询 查询指定的列