首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Mysql >

mysql的查询语句的排序有关问题

2012-02-04 
mysql的查询语句的排序问题SQL查询语句如下:select * from table where (ID 10) or (ID 32) or (ID

mysql的查询语句的排序问题
SQL查询语句如下:
select * from table where (ID = 10) or (ID = 32) or (ID = 22) or (ID = 76) or (ID = 13) or (ID = 44)

我想让结果按10,32,22,76,13,44的顺序检索出来,但是检索后的顺序变成了按ID排序的:10,13,22,32,44,76。

请问如何让结果不排序呢???

多谢!

[解决办法]


一个变通的方法

SQL code
select *,case id     when 10 then 1     when 32 then 2     when 22 then 3     when 76 then 4     when 13 then 5     when 44 then 6 END as seqfrom table where (ID = 10)     or (ID = 32)     or (ID = 22)     or (ID = 76)     or (ID = 13)     or (ID = 44)order by seq
[解决办法]


SQL code
select *,INSTR(',10,32,22,76,13,44,', ','+id+',') as seqfrom table where id in(10,32,22,76,13,44)order by seq
[解决办法]
探讨
SQL codeselect *,
INSTR(',10,32,22,76,13,44,', ','+id+',') as seq
from table
where id in(10,32,22,76,13,44)
order by seq

== 思想重于技巧 ==

[解决办法]
哈哈哈哈哈哈哈,你们都不行,看我的。


select *
from table 
where id in(10,32,22,76,13,44)
order by field (id,10,32,22,76,13,44);


[解决办法]
select a.*, a.mark from 
(
select table.id, 600 as mark from table where table.id=10 union 
select table.id, 500 as mark from table where table.id=32 union 
select table.id, 400 as mark from table where table.id=22 union 
select table.id, 300 as mark from table where table.id=76 union 
select table.id, 200 as mark from table where table.id=13 union 
select table.id, 100 as mark from table where table.id=44 
) as a order by mark desc;

热点排行