日期:2014-05-17  浏览次数:20570 次

用select where in语句查询结果不按条件排序
我用了select * from chufang where picid in(23,34,43,32,12,45)查询,但是结果不能按照23,34,43,32,12,45的次序排序,不知道是什么原因,应该怎么写语句,请教各位!谢谢
------解决方案--------------------
你要价格order by才行啊。where的只是筛选而已
------解决方案--------------------
引用:
你要价格order by才行啊。where的只是筛选而已

+1 in只是一个范围!
你要排序的顺序很奇怪哦
------解决方案--------------------
WITH    chufang
           AS ( SELECT   23 picid
                UNION
                SELECT   34
                UNION
                SELECT   43
                UNION
                SELECT   32
                UNION
                SELECT   12
                UNION
                SELECT   45
              )
     SELECT  *
     FROM    chufang
     WHERE   picid IN ( 23, 34, 43, 32, 12, 45 )
     ORDER BY CASE picid
                WHEN 23 THEN 1
                WHEN 34 THEN 2
                WHEN 43 THEN 3
                WHEN 32 THEN 4
                WHEN 12 THEN 5
                WHEN 45 THEN 6
              END 
 
 /*
 picid
 -----------
 23
 34
 43
 32
 12
 45
 
 (6 行受影响)
 
 
 */

------解决方案--------------------
引用:
SQL code

WITH    chufang
           AS ( SELECT   23 picid
                UNION
          &