2017-02-12 29 views
0

我想僅在它們尚未退出時才插入值。我的表格叫做wp_all_import,我的數值叫做pidprice,price_old,shoplinkSQL:無法退出的位置 - 僅在不存在時插入

任何人都可以告訴我這裏有什麼錯嗎? 因爲他插入值,但他們已經離開...

INSERT INTO `wp_all_import` ('$pid', '$price', '$price_old', '$link', '$shop') 
     SELECT 'pid', 'price', 'price_old', 'shop', 'link' FROM `wp_all_import` 
     WHERE NOT EXISTS (SELECT * FROM `wp_all_import` 
     WHERE (pid = '$rpid') AND (price = '$rprice') AND (price_old = '$rprice_old') AND (shop = '$rshop') AND (link = '$rlink')) 

問候和感謝!

+0

難道你不確定問題不在於你使用單引號'''而不是雙引號'「嗎?它被看作是帶有單引號的文字 – zed

+0

加上你爲什麼使用不同的變量字段,如'$ pid'和'$ rpid'? – zed

+0

現在我明白了,變量應該全部與一個r之前的名字... 但是這仍然沒有解決我的問題... – Jan

回答

0

我真的不明白你的代碼,但我認爲這是你在找什麼:

我認爲變量(從$符號)表示要插入

INSERT INTO wp_all_import(pid, price, price_old, shop, link) 
SELECT * FROM (SELECT $pid, $price, $price_old, $shop, $link) AS tmp 
WHERE NOT EXISTS (
    SELECT * FROM wp_all_import 
    WHERE pid= $pid AND price = $price 
    AND price_old = $price_old AND link = $link 
    AND shop = $shop) LIMIT 1; 
+0

什麼是選擇名稱? – Jan

+0

@Jan這是一個錯誤更新我的答案 – Yahfoufi

+1

好的,謝謝。我會嘗試。但是我的變量之前用r調用。所以我改變它,並將測試它:D – Jan