我有一个具有以下结构的表:
+-----+------------+------------+------------+------------+
| ID | FEATURE1 | FEATURE2 | FEATURE3 | FEATURE4 |
+-----+------------+------------+------------+------------+
| 1 | red | blue | black | grey |
| 2 | yellow | | | |
| 3 | orange | red | green | golden |
| 4 | orange | grey | blue | |
我想做的是查询表格并返回所有可能的功能以用于自动完成调用。我需要查询仅返回唯一值。
SELECT (FEATURE1, FEATURE2, FEATURE3, FEATURE4, FEATURE5) FEATURE
FROM products
WHERE `FEATURE` LIKE 'gr%\'
我想要的输出是:
+----------+
| FEATURE |
+----------+
| green |
| grey |
最佳答案
基本上,您可以使用 UNION
将所有列组合成一行。
SELECT *
FROM
(
SELECT FEATURE1 FEATURE FROM TableName
UNION
SELECT FEATURE2 FEATURE FROM TableName
UNION
SELECT FEATURE3 FEATURE FROM TableName
UNION
SELECT FEATURE4 FEATURE FROM TableName
) sub
WHERE FEATURE LIKE 'gr%'
关于mysql - 将 mysql 列合并到行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15435346/