我有一个包含 2 个字段的表, val1val2 ,它们包含相同的类型。 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/

10-16 23:11