php - 使用 DISTINCT 和 UNION 在 SQL 查询中获取字段名称

标签 php mysql sql union distinct

我有以下查询:

SELECT DISTINCT(uniq)
FROM
(
    SELECT sex AS uniq FROM type4
    UNION
    SELECT fason AS uniq FROM type4
    UNION
    SELECT color AS uniq FROM type4
    UNION
    SELECT size AS uniq FROM type4
) AS Temp

它几乎运行良好,它返回:

[uniq] => some unique value

是否有可能知道这个唯一值来自哪一列? 我的意思是这样的:

[uniq] => some unique value
[from] => size

我该怎么做?

最佳答案

您的原始查询不需要子查询或 DISTINCT。你可以使用:

SELECT sex AS uniq FROM type4
UNION
SELECT fason FROM type4
UNION
SELECT color FROM type4
UNION
SELECT size FROM type4

现在对于你的问题,如果四列没有重叠值,你可以使用:

  SELECT DISTINCT sex AS uniq
                , 'sex' AS FromColumn 
  FROM type4
UNION ALL
  SELECT DISTINCT fason 
                , 'fason' 
  FROM type4
UNION ALL
  SELECT DISTINCT color 
                , 'color' 
  FROM type4
UNION ALL
  SELECT DISTINCT size 
                , 'size' 
  FROM type4

关于php - 使用 DISTINCT 和 UNION 在 SQL 查询中获取字段名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8423403/

相关文章:

javascript - 在 getJSON jquery 中传递输入值

php - 为什么这个简单的连接不起作用? (mysql)

sql - 删除 SQL 结果中的 SUM 列

php - AWS AccessDeniedException 与 Laravel for S3

javascript - Highcharts 列适合/调整图表

php - 如何在数据库中搜索多个单词

mysql - 在mysql中找到相关主题?

php - 如何获取用户的个人资料图片,因为它出现在新的时间线个人资料中?

c# - MySQL 字段在 LOAD DATA LOCAL INFILE 后从 VARCHAR(20) 更改为 INT

sql - 在 Bigquery 中将秒转换为天、小时、分钟