如果为 NULL,则 SQL 插入
Posted
技术标签:
【中文标题】如果为 NULL,则 SQL 插入【英文标题】:SQL Insert if NULL 【发布时间】:2011-10-28 12:10:44 【问题描述】:有没有一种纯粹的 SQL 方法可以做到这一点?
我有一张桌子apples
:id, price
,还有一张apple_info
:apple_id, color
对于apples
中的每一行,如果它尚不存在,我想在apple_info
中添加相应的行。找不到任何这样的例子。
【问题讨论】:
在插入每个苹果时,还是在插入整个苹果表之后?如何为插入到 apple_info 中提供颜色值? 事后(这将是我选择的一些设定值) 【参考方案1】:试试这个:
insert into apple_info (apple_id, color)
select a.id, 'some_color'
from apples a
left outer join apple_info ai
on (a.id = ai.apple_id)
where ai.apple_id is null;
您将在apple_info
上插入一个不存在的apple_id
和color
的固定值的行。我想这就是你想要的。
【讨论】:
谢谢,这正是我的想法。LEFT OUTER JOIN
让我失望,但事实证明它与 mysql 中的 LEFT JOIN
相同:***.com/questions/2809594/…【参考方案2】:
使用INSERT IGNORE:
INSERT IGNORE INTO apple_info(apple_id, color)
SELECT id, 'green' FROM apples
【讨论】:
以上是关于如果为 NULL,则 SQL 插入的主要内容,如果未能解决你的问题,请参考以下文章