Ⅰ 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應該也有這樣的函數