我有这张桌子:
1 user_id1 a
2 user_id2 b
3 user_id1 c
4 user_id3 d
5 user_id1 e
6 user_id2 f
7 user_id4 g
8 user_id3 h
9 user_id1 j
10 user_id1 i
我需要选择5个第一个标题,它们没有user_id3并按id ASC排序,在表格的末尾添加所有它们都有user_id3。
结果:
user_id1 a
user_id2 b
user_id1 c
user_id1 e
user_id2 f
user_id3 d
user_id3 h
答案 0 :(得分:0)
SELECT * FROM table WHERE user_id!='user_id3' ORDER BY id LIMIT 5
UNION ALL
SELECT * FROM table WHERE user_id='user_id3'
答案 1 :(得分:0)
像这样:
SELECT * from mytable WHERE user_id!='user_id3'
UNION SELECT * FROM mytable WHERE user_id='user_id3'
ORDER BY IF(user_id='user_id3', 1, 0) ASC, id ASC
请注意,order by
必须位于查询的末尾,因此您必须使用此类提示来执行您想要的操作。如果您假设您的id已经排序(不需要删除),您可以删除整行,因为union在第一个请求结果之后添加第二个请求结果。