PHP程序员站--PHP编程开发平台
 当前位置:主页 >> 数据库 >> MySQL >> 

SQL中对where in 排序问题

SQL中对where in 排序问题

来源:phperz.com  作者:phperz.com  发布时间:2010-12-16
用sql中的where in语句可以对指定id的记录进行查询,有时我们想

用sql中的where in语句可以对指定id的记录进行查询,有时我们想把查询出来的结果按照in中的id 顺序进行排序。比如 select * from table where id in('2','3','1','5')

我们想让查询出来的记录是按照2,3,1,5的先后顺序列出,但mysql除了order by asc/desc之外没有别的语句对其进行排序,

现在介绍的这二种方法可以实现这个功能

1.用union一个一个的查询并连接出来。比如

SELECT * FROM table WHERE ID =4 UNION SELECT * FROM table WHERE ID =2 UNION SELECT * FROM table WHERE ID =5

2,用sql中的case。比如

SELECT * , CASE id WHEN 4 THEN 1 WHEN 2 THEN 2 WHEN 5 THEN 3 END AS ordid FROM jyk_archives WHERE id IN ( 4, 2, 5 ) ORDER BY ordid ASC

这二种方法都可以实现这种按in中的id的顺序进行排序。但弊端也很显然,都太麻烦,但没办法,谁让mysql都没有提供这种方法呢,

前几天本人就遇到这种情况,不过笔者的需求只是对其中的二个id排列到最前面即刻,但sql连表太多,也没有用上面的方法,最后用php类似冒泡算法,把那二个id搞到前面

以上二种方法是笔者在网上找到的资料,希望对各朋友有用。


延伸阅读:
MySQL中你需要注意的几个SQL语句
透视MySQL数据库之更新语句
MySQL中值得我们注意的SQL语句
PHP通过参数来生成MYSQL语句
谈php+mysql注射语句构造
常用Sql语句备忘
sql语句全集值得收藏
Mysql手工注入语句(站长推荐)
MySQL数据库之UPDATE更新语句精解
PHP中常用的几个 mysql 语句
Tags: sql   where   in   排序  
最新文章
推荐阅读
月点击排行榜
PHP程序员站 Copyright © 2007-2010,PHPERZ.COM All Rights Reserved 粤ICP备07503606号