if语句为真时只执行INSERT
问题描述:
我想执行一行INSERT,但只有当if条件为真时才执行INSERT。if语句为真时只执行INSERT
下面是伪代码中的一个基本示例(仅用于简化问题)。
"If there is a user id = 5 in the users table (using SELECT), execute: INSERT INTO someOtherTable ...()"
任何帮助,非常感谢。
答
如果users.id是主键或至少唯一
INSERT INTO someOtherTable
SELECT 123, 456, 'a string value'
FROM users
WHERE id = 5
非唯一的测试,你可以使用特殊的表道尔·
INSERT INTO someOtherTable
SELECT 123, 456, 'a string value'
FROM DUAL
WHERE 5 IN (SELECT id FROM users WHERE id = 5)
123,456,“字符串值”的您通常会在VALUES()子句中指定的值? 刚刚在这里明确;我不想插入来自SELECT语句的值。我想首先执行一种类型的查询(检查涉及其他表的查询是否为真),然后使用来自PHP变量的值执行INSERT。 – 2012-07-17 09:42:40
是的,有例子值'INSERT INTO t VALUES(123,456,'a')'AND'INSERT INTO t SELECT 123,456,'a'' is Equal – 2012-07-17 10:39:27