我在同一个表上有两个需要加入一个mysqli结果的查询。证明非常独特的问题是对单个语句进行排序,然后合并为一个结果,保留顺序,这样我就可以遍历每个结果。
以下是查询的简化版本:
"SELECT number FROM items WHERE number > 0 ORDER BY number ASC"
"SELECT number FROM items WHERE number >= 0 ORDER BY number DESC"
因此,给定一个包含正值和负值的表格,结果应如下:
1,2,3,4,5,0,-1,-2,-3,-4,-5
然后结果通过PHP while循环。
答案 0 :(得分:0)
这样的事情应该有效:
SELECT number FROM (
SELECT * FROM (
SELECT number, number AS sort1, 'a' AS sort2 FROM items WHERE number > 0 ORDER BY number ASC
) s1
UNION
SELECT 0, 'b', 0 FROM items WHERE number = 0
UNION SELECT * FROM (
SELECT number, 'c' AS sort1, number AS sort2 FROM items WHERE number < 0 ORDER BY number DESC
) s2
) ss1
ORDER BY ss1.sort1 ASC, ss1.sort2 ASC
这将使用不同的排序标记选择结果的3个部分,以便您可以使用它们按照您的需要进行排序。
技巧部分是将0
放在原处。