选择查询但显示记录编号3的结果

时间:2011-11-24 16:04:22

标签: mysql sql

我有一些简单的查询:

SELECT * FROM table 

你们都知道结果:

|id|   foo   |    bar   |
-------------------------
|1 |   aaa   |    123   |
|2 |   bbb   |    234   |
|3 |   ccc   |    345   |
|4 |   ddd   |    456   |

但是,我想要做的是从3号唱片中看出来的?我知道我可以用SELECT * FROM table where id=3来做,但是我需要设置我选择的记录在第一级,假设我选择id=3所以结果如下:

|id|   foo   |    bar   |
-------------------------
|3 |   ccc   |    345   |
|4 |   ddd   |    456   |
|1 |   aaa   |    123   |
|2 |   bbb   |    234   |

|id|   foo   |    bar   |
-------------------------
|3 |   ccc   |    345   |
|1 |   aaa   |    123   |
|2 |   bbb   |    234   |
|4 |   ddd   |    456   |

这可能吗?

1 个答案:

答案 0 :(得分:1)

这样您首先得到id = 3

SELECT *
FROM tbl
ORDER BY (id = 3) DESC
-- ,id

如果您希望其他订购,也可以id订购。

说明:

表达式的计算结果为booleanFALSE(在mysql中为0)在TRUE之前排序(在mysql中为1),因此我们按顺序排序。

它还会自动涵盖id NULL的情况。我引用manual again here

  

执行ORDER BY时,如果您这样做,则首先显示NULL值   ORDER BY ... ASC,如果你按照ORDER BY ... DESC进行操作。