MYSQL选择,末尾有一个条目
堆垛机, 我想从MYSQL表中进行选择,并在MYSQL查询的最后显示ID 54,我编写了以下代码,但与顺序冲突:MYSQL选择,末尾有一个条目,mysql,Mysql,堆垛机, 我想从MYSQL表中进行选择,并在MYSQL查询的最后显示ID 54,我编写了以下代码,但与顺序冲突: SELECT * FROM owners WHERE id <= 53 UNION SELECT * FROM owners WHERE id >= 55 ORDER BY owner UNION SELECT * FROM owners WHERE id = 54 我认为即使它能工作,也很麻烦,你能帮忙吗?试着用括号 (SELECT * FROM owners WHE
SELECT * FROM owners WHERE id <= 53
UNION
SELECT * FROM owners WHERE id >= 55
ORDER BY owner
UNION
SELECT * FROM owners WHERE id = 54
我认为即使它能工作,也很麻烦,你能帮忙吗?试着用括号
(SELECT * FROM owners WHERE id <= 53)
UNION
(SELECT * FROM owners WHERE id >= 55 ORDER BY owner)
UNION
(SELECT * FROM owners WHERE id = 54)
试着用括号
(SELECT * FROM owners WHERE id <= 53)
UNION
(SELECT * FROM owners WHERE id >= 55 ORDER BY owner)
UNION
(SELECT * FROM owners WHERE id = 54)
您不能依赖于工会子选区的顺序。另请参阅许多其他堆栈溢出问题,例如: 这样做:
SELECT * FROM owners
-- Order by "ID category" first
ORDER BY CASE WHEN ID <= 53 THEN 1
WHEN ID >= 55 THEN 2
WHEN ID = 54 THEN 3 END,
-- Then, within "category 55", order by owner, too
CASE WHEN ID <= 53 THEN ''
WHEN ID >= 55 THEN owner
WHEN ID = 54 THEN '' END
您可能需要通过表达式稍微调整第二个顺序,因为我不确定您希望如何处理所有者的顺序…您不能依赖工会子选择的顺序。另请参阅许多其他堆栈溢出问题,例如: 这样做:
SELECT * FROM owners
-- Order by "ID category" first
ORDER BY CASE WHEN ID <= 53 THEN 1
WHEN ID >= 55 THEN 2
WHEN ID = 54 THEN 3 END,
-- Then, within "category 55", order by owner, too
CASE WHEN ID <= 53 THEN ''
WHEN ID >= 55 THEN owner
WHEN ID = 54 THEN '' END
您可能需要稍微调整表达式的第二个顺序,因为我不确定您希望如何处理按所有者排序…关于您的示例,您希望从所有者中选择所有内容,并显示id为54的行
关于您的示例,您希望从owners中选择所有内容,并首先显示id=54的行
如果您只想在末尾加上54,或许可以将查询缩短为:
SELECT * FROM owners
WHERE id <= 53 or id >= 55 or id = 54
ORDER BY
id = 54,
owner
如果您只想在末尾加上54,或许可以将查询缩短为:
SELECT * FROM owners
WHERE id <= 53 or id >= 55 or id = 54
ORDER BY
id = 54,
owner
你怎么说它与订单冲突?你怎么说它与订单冲突?这不能保证有效。另请参见:这并不能保证有效。另请参见:查询将返回0行-是的,应该是,或者不是;呵呵,为什么我会想到中间。谢谢你能很快发现ツ即使使用或代替,并且您正在筛选出ID=54。。。你为什么还有那个谓词?你应该去掉WHERE部分。哎呀,短路了。让我说清楚。实际上,他的查询的WHERE条件可以全部删除您的查询将返回0行-是的,应该是,或者不是;呵呵,为什么我会想到中间。谢谢你能很快发现ツ即使使用或代替,并且您正在筛选出ID=54。。。你为什么还有那个谓词?你应该去掉WHERE部分。哎呀,短路了。让我说清楚。真的,他的问题是条件可以全部删除的地方