现在有一个商品的表,表的字段有: id(商品的ID号),name(商品名称),userId(发布该商品信息者的ID)。
    如果,现在有10000条商品信息,userId可能有200种,也就是说各条商品信息是由200个人中的其中一个人发的。比如,userId可能的取值是:1,2,3,4..200。
    那么,写SQL语句实现,显示所有结果,也就是10000条,让userId为9的信息排在最前面,其他剩下的信息排在后面,也就是说,比如,userId为9的有200条,那么,这200条信息排前面显示出来,其他的9800条,排在后面。(只要让userId为9的排在最前面就行了,为9的信息间,没有排序规则,随便,其他的9800条中也没有排序规则,总之,userId为9的排在前200位就行了)。
    
    请各位献计,最好留下SQL语句。有什么不明白的或我说不清楚的,跟帖问,我现在在线等。谢谢!

解决方案 »

  1.   

    select * from 商品的表 order by userId=9 desc
      

  2.   

    只需要9排在最前面的,那就直接order by 9 这项就可以了
    示例:mysql> select * from tb_order;
    +------+------+
    | id   | memo |
    +------+------+
    |    1 | aa   |
    |    2 | bb   |
    |    5 | cc   |
    |    9 | dd   |
    |   15 | ff   |
    |   18 | gg   |
    +------+------+
    6 rows in set (0.00 sec)mysql> select * from tb_order order by id=9 desc;
    +------+------+
    | id   | memo |
    +------+------+
    |    9 | dd   |
    |    1 | aa   |
    |    2 | bb   |
    |    5 | cc   |
    |   15 | ff   |
    |   18 | gg   |
    +------+------+
    6 rows in set (0.00 sec)mysql>