我有一个带有 ENUM 的 MySQL 表。由于有时我不得不更改此 ENUM,因此我将其转移到另一个表。现在我必须创建一个语句,它将在一个选择字段中为我提供枚举/新表的名称。
表1(瓶):
id | size | size_id
1 | small | (NULL)
2 | medium | (NULL)
3 | big | (NULL)
4 | (NULL) | 1
5 | (NULL) | 2
6 | (NULL) | 3
表 2(bottle_size):
id | name
1 | small
2 | medium
3 | big
选择:
SELECT id, <dontknow> as size
FROM bottle b
LEFT JOIN bottle_size bz ON b.size_id = bz.id
WHERE size = 'small';
我该怎么做?
谢谢
最佳答案
您可以使用 IFNULL()
如果第一个字段不是 NULL
,则选择第一个字段,否则选择第二个字段。因为这会导致动态字段(“大小”),所以您需要使用 HAVING
而不是 WHERE
来添加条件:
SELECT b.id, IFNULL(b.size, bz.name) AS size
FROM bottle b
LEFT JOIN bottle_size bz ON b.size_id = bz.id
HAVING size = 'small';
关于mysql - 如何合并 SQL SELECT 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15544768/