【问题标题】:Display two lists of resultsets from same table in MySql在 MySql 中显示来自同一个表的两个结果集列表
【发布时间】:2013-03-31 21:36:26
【问题描述】:

我正在尝试在 MySql 中编写一个查询,我希望从一个单一的选择语句中获得 两个不同的结果集。例如,我有一个包含两列“名称和值”的表。请注意我不想使用多个表。我想要一张表的结果集。

Name  Value
A     W
B     X
C     W
A     Y
C     Z

当我运行 select 语句时,我想将结果显示为

我的结果集的第一个列表为:

Name
A
B
C

我的结果集的第二个列表为:

Value
W
X
Y
Z

我曾尝试使用 UNION DISTINCT 语句,但它不能解决我的问题。

【问题讨论】:

  • 为什么不执行到SELECT 语句?第一条语句SELECT DISTINCT Name From TableName 和第二条语句SELECT DISTINCT Value From TableName?
  • 我试过了,但它不起作用。当我将语句粘贴到我的 PHP 代码中时。请指教。
  • AFAIK,不可能从单个查询中获得两个结果集。在这里阅读stackoverflow.com/a/5271369/801544

标签: php mysql


【解决方案1】:

如果两列的类型相同,则可以使用

select distinct name
from mytable
union all
select distinct value
from mytable

SQLFiddle

【讨论】:

    【解决方案2】:

    一种方法:

    select distinct result,
          case result when 'name' then name else value end name_value
    from (select 'name' result union select 'value') r
    cross join mytable
    

    【讨论】:

      猜你喜欢
      • 2022-11-14
      • 2017-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-26
      • 1970-01-01
      相关资源
      最近更新 更多