我有一个包含 2 个字段的表, val1
和 val2
,它们包含相同的类型。 val1
是强制性的, val2
是可选的——但如果存在,应该和 val1
一样多。
CREATE TABLE VALS (
id INT NOT NULL AUTO_INCREMENT,
val1 INT NOT NULL,
val2 INT DEFAULT NULL,
timesign TIMESTAMP);
为此,我想将所有值(无论是来自
val1
还是 val2
字段)检索到一个字段 res
中,这样INSERT INTO VALS (val1, val2) VALUES
(1, null),
(2, null),
(3, 4),
(5, null),
(6, 7),
(8, null);
只能检索到一个字段:
+------+
| res |
+------+
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |
| 8 |
+------+
如何做到这一点?
最佳答案
试试这个:
SELECT val1 as res
FROM VALS
UNION
SELECT val2 as res
FROM VALS
WHERE val2 is notNULL;
你不需要“dist”,Union 本身就是给定的。
关于mysql - 选择不同的字段作为一个字段(无 CONCAT),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23235448/