现在有一个商品的表,表的字段有: 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语句。有什么不明白的或我说不清楚的,跟帖问,我现在在线等。谢谢!
如果,现在有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语句。有什么不明白的或我说不清楚的,跟帖问,我现在在线等。谢谢!
示例: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>