我有以下声明:
SELECT pinpicsid
FROM user_collection
JOIN pin ON user_collection.pinid = pin.id
WHERE username = 'myuser'
AND pinpicsid = '98802';
如果它返回空白(或没有行),我想像这样执行 INSERT:
SELECT id INTO @id FROM pin WHERE pinpicsid = '98802';
INSERT INTO user_collection (pinid, username)
VALUES (@id, 'ethanwa');
是否有任何可能的方法将所有这些组合成一个语句?
最佳答案
为什么不直接插入...选择?
INSERT INTO user_collection (pinid, username)
SELECT id, 'ethanwa' FROM pin WHERE pinpicsid = '98802';
此处的语法:http://dev.mysql.com/doc/refman/5.6/en/insert-select.html
如果您需要强制 pinid 的唯一性,但仍想更新用户名,您可以这样做:
INSERT INTO user_collection (pinid, username)
SELECT id, 'ethanwa' FROM pin WHERE pinpicsid = '98802'
ON DUPLICATE KEY UPDATE username = VALUES(username)
如果不了解更多关于此脚本的目标,就很难获得更精确的结果。
关于mysql - 如何为 MySQL 编写一条 SQL 语句来检查值,如果为真则执行 INSERT?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20475063/