gpt4 book ai didi

mysql - 如果内部查询没有找到任何内容,则取消插入

转载 作者:行者123 更新时间:2023-11-29 08:38:17 25 4
gpt4 key购买 nike

我收到以下查询:

INSERT INTO contracts_settings (contract_id, setting_id, setting_value)
VALUES (:contract_id, (
SELECT setting_id
FROM settings
WHERE setting_type = :setting_type
AND setting_name = :setting_name
LIMIT 1
), :setting_value)
ON DUPLICATE KEY UPDATE setting_value = :setting_value

使用 PHP PDO::bindBalue 将带有前缀 : 的值替换为数据。

如果内部查询什么也没找到(它返回NULL)还要INSERT一个NULL语句。如何避免这种情况?

谢谢。

最佳答案

INSERT ... VALUES 语法转换为 INSERT ... SELECT :

INSERT INTO contracts_settings 
(contract_id, setting_id, setting_value)
SELECT
:contract_id,
setting_id,
:setting_value
FROM settings
WHERE setting_type = :setting_type
AND setting_name = :setting_name
LIMIT 1

ON DUPLICATE KEY UPDATE
setting_value = :setting_value ;

关于mysql - 如果内部查询没有找到任何内容,则取消插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14570031/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com