Ⅰ mysql怎么按 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);
Ⅱ SQL语句中,选择结果如何按指定顺序排序
可以这样实现题主所要求的排序
select * from A_TABLE1 where
name in(‘张三’,‘李四’,‘王五’)
order by (case name when '张三' then 1
when '李四' then 2 else 3 end);
Ⅲ sql in怎么根据in的顺序排列查询结果
按指定顺序输出数据,可以使用order by charindex(','+convert(varchar,ID)+',',',3,1,2,5,4,')的方法来实现这个目的
1
2
3
4
select id,title
from tbname
where id in (3,1,2,5,4)
order by charindex(','+convert(varchar,ID)+',',',3,1,2,5,4,')
Ⅳ 求一sql语句使数据按 where in 括号内的数据顺序排列
看了你要求,我重新给你改了一下,这句就可以达到
你的要求
:select
*
from
para
where
bh
in('1','2','4','7','8','11','10')
order
by
CONVERT(char(10),bh)
asc
你试试,应该是可以的,按
字符
排序,char(10)这个
大小
根据你数据多少,不需要这么大,就
小点
,也可以用varchar(10)。
不明白可以继续问
Ⅳ SQL语句按in排序问题
将in里面的内容拿出来,当作一张表,和你现有的表做关联,然后根据num排序
Ⅵ sql语句怎么按in里的id排序
这个是没办法的,你只能用内连接才可以用
Ⅶ php sql 中WHERE 的条件:IN(3,2,5,8) 结果如何按IN中的顺序排序
没法这样排序。
只能用UNION:
"(SELECT .....WHERE id=3) UNION (SELECT .....WHERE id=2) UNION (SELECT .....WHERE id=5) UNION (SELECT .....WHERE id=8)”
Ⅷ 想问下,sql 按 in 后的顺序排序问题。
那你把charindex(rtrim(id),'//序列') as Sort
作为一个字段放在select里面,然后再用Sort字段排序,试试看
select *, charindex(rtrim(id),'//序列') as sort from tbname where id in(//序列) order by sort
Ⅸ 让sql语句不排序,按照in语句的顺序返回结果
select name from order where oderid in(111,222,333,444,555,666)
order by instr('111,222,333,444,555,666',orderid)
instr是orale里面表示字串出现位置的一个函数.DB2应该也有这样的函数