[英]Get field name in SQL query with DISTINCT and UNION
我有以下查詢:
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
SELECT DISTINCT(uniq)
FROM
(
SELECT (sex + ' 1') AS uniq FROM type4
UNION
SELECT (fason + ' 2') AS uniq FROM type4
UNION
SELECT (color + ' 3') AS uniq FROM type4
UNION
SELECT (size + ' 4') AS uniq FROM type4
) AS Temp
然后你可以使用substring從右邊刪除最后2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.