在問這個問題之前,我已經在Google和StockOverflow上搜索了很多條目。沒有什麼能完成我的問題。MySql - 如果沒有記錄,則插入多行
有兩個表格 - group_sale_bonuses
和members
。我想檢查是否已在group_sale_bonuses
中有product_id "1"
的記錄。
如果不是,我想從members
表中插入所有記錄到group_sale_bonuses
與product_id "1"
。
我的總體要求是如下:
IF ((Select count(id) from group_sale_bonuses where product_id = 1) = 0) THEN
INSERT INTO group_sale_bonuses (member_id, product_id, quantity_counter, credit)
SELECT id, 1, 0, 0 FROM members
END IF
但這SQL導致錯誤。
我知道有關於Insert Ignore
,Where Not Exists
的解決方案。
但這些條件檢查是基於每條記錄。我在members
表中有上千條記錄。我想在上面的sql例子中進行一次條件檢查。
順便說一下,我將在Php
web應用程序中使用此Sql
。
你正在得到哪個錯誤? –
@ user790454錯誤是 - #1064 - 你的SQL語法有錯誤;檢查與您的MySQL服務器版本相對應的手冊,以便在'IF((來自group_sale_bonuses where product_id = 1的選擇計數(id))= 0)附近使用正確的語法時使用'THEN'在第1行 –
我認爲您不能使用IF語句直接在查詢中,至少我在谷歌上找不到任何關於此的內容。我認爲你應該用你的web應用程序來做。如果我知道的唯一的陳述是if(condition,thenthis,elsethis) – Artemkller545