执行以下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都可以
您可能感兴趣的文章:
让MySQL支持中文排序的实现方法MYSQL 关于两个经纬度之间的距离由近及远排序mysql如何根据汉字首字母排序mysql 按中文字段排序MySQL查询优化:连接查询排序浅谈MySQL查询优化:连接查询排序limit(join、order by、limit语句)介绍mysql的中文数据按拼音排序的2个方法MySQL中按照多字段排序及问题解决mysql 关键词相关度排序方法详细示例分析PHP 中执行排序与 MySQL 中排序mysql自定义排序顺序语句mysql中文排序注意事项与实现方法MySQL关于字符串中数字排序的问题分析