是否可以添加分隔符或知道联合查询中的结果集何时更改?例如:
SELECT * FROM table1 WHERE name >= 'a' AND name < 'g'
UNION ALL
SELECT * FROM table1 WHERE name >= 'g' AND name < 'k'
在遍历结果时,是否有办法在遍历结果时知道它正在遍历第二个查询的结果?我希望使用简单的方法,而不是使用PHP来获取第一个字母,以查看当前结果是否仍在和g之间,或者现在是否在g和k之间。我可以添加一个自定义分隔符字段来告诉我何时正在访问下一个查询的结果吗?希望这有道理。
答案 0 :(得分:2)
是的,您可以将计算列添加到UseSpa()
查询中,然后按其排序:
UNION
这将首先放置来自SELECT *, 1 AS position FROM table1 WHERE name >= 'a' AND name < 'g'
UNION ALL
SELECT *, 2 FROM table1 WHERE name >= 'g' AND name < 'k'
ORDER BY position;
查询的记录,然后放置来自a <= name < g
查询的记录。