【问题标题】:Is there a way to tell when the result set changes in a MySQL union query?有没有办法判断 MySQL 联合查询中的结果集何时发生变化?
【发布时间】:2018-10-12 05:19:04
【问题描述】:

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

SELECT * FROM table1 WHERE name >= 'a' AND name < 'g'
UNION  ALL
SELECT * FROM table1 WHERE name >= 'g' AND name < 'k'

在遍历结果时,有没有办法在遍历结果时知道它现在正在遍历第二个查询的结果?我希望一些简单的东西而不是使用 PHP 来获取第一个字母,以查看当前结果是否仍在和 g 之间,或者现在是否在 g 和 k 之间。我可以添加一个自定义分隔符字段,告诉我现在何时访问下一个查询的结果吗?希望这是有道理的。

【问题讨论】:

    标签: mysql union


    【解决方案1】:

    是的,您可以在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 &lt;= name &lt; g 查询的记录放在第一位,然后是来自g &lt;= name &lt; k 查询的记录。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-03
      • 2015-07-19
      • 2010-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多