2017-02-12 22 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