2012-07-16 120 views
0

我想執行一行INSERT,但只有當if條件爲真時才執行INSERT。if語句爲真時只執行INSERT

下面是僞代碼中的一個基本示例(僅用於簡化問題)。

"If there is a user id = 5 in the users table (using SELECT), execute: INSERT INTO someOtherTable ...()" 

任何幫助,非常感謝。

回答

3

如果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) 
+0

123,456,「字符串值」的您通常會在VALUES()子句中指定的值? 剛剛在這裏明確;我不想插入來自SELECT語句的值。我想首先執行一種類型的查詢(檢查涉及其他表的查詢是否爲真),然後使用來自PHP變量的值執行INSERT。 – 2012-07-17 09:42:40

+0

是的,有例子值'INSERT INTO t VALUES(123,456,'a')'AND'INSERT INTO t SELECT 123,456,'a'' is Equal – 2012-07-17 10:39:27