在mysql联合查询中,有什么方法可以判断结果集何时更改?

kjthegm6  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(318)

有没有办法在联合查询中添加分隔符或知道结果集何时发生了更改?例如:

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之间。我可以添加一个自定义分隔符字段来告诉我何时访问下一个查询的结果吗?希望这有意义。

bxjv4tth

bxjv4tth1#

是的,您可以将计算列添加到 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 第二个问题。

相关问题