有没有办法添加分隔符或知道联合查询中的结果集何时更改?例如:
SELECT * FROM table1 WHERE name >= 'a' AND name < 'g'
UNION ALL
SELECT * FROM table1 WHERE name >= 'g' AND name < 'k'
在遍历结果时,有没有办法在遍历结果时知道它现在正在遍历第二个查询的结果?我希望一些简单的东西而不是使用 PHP 来获取第一个字母来查看当前结果是否仍在 g 和 g 之间,或者它现在是否在 g 和 k 之间。我可以添加一个自定义分隔符字段来告诉我现在何时访问下一个查询的结果吗?希望这是有道理的。
最佳答案
是的,您可以将计算列添加到 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
的记录首先查询,然后是 g <= name < k
中的记录第二个查询。
关于mysql - 有没有办法判断 MySQL 联合查询中的结果集何时发生变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52772731/