我有以下查询:
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
然后您可以使用子字符串从右侧中删除最后2个