Mysql select in 按id排序实现方法

表结构如下:

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  

请问在这样的SQL在Mysql中怎么写?

网上查到sqlserver中可以用order by charindex解决,但是没看到Mysql怎么解决??请高手帮忙,谢

谢!

select * from a order by substring_index('3,1,2',id,1);  

试下这个good,ls正解。

order by find_in_set(id,'3,1,5')  

谢谢,经测试order by substring_index和order by find_in_set都可以 。

原文出处:teakki -> https://www.teakki.com/p/57e22e27a16367940da64158

本站所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如果侵犯你的利益,请发送邮箱到 [email protected],我们会很快的为您处理。