我有以下INSERT從SELECT處插入INSERT - 如果存在?
INSERT INTO `tbl_productcategorylink`
(`pcl_p_id`, `pcl_cat_id`, `pcl_orderby`)
SELECT
`p_id` AS pcl_p_id,
(SELECT `cat_id` FROM `tbl_categories` WHERE
CASE
WHEN `tbl_products`.`p_gender` = 'female' THEN
`cat_url_tag` = 'womens'
ELSE
`cat_url_tag` = 'mens'
END
LIMIT 1) AS pcl_cat_id,
1 AS pcl_orderby
FROM `tbl_products`
WHERE `tbl_products`.`p_gender` = 'female' OR `tbl_products`.`p_gender` = 'male';
這是添加鏈接類別和產品之間,p_gender
設定爲「男性」任何產品都加入到「男子」類別,同樣爲「女'類。
如何才能做到這一點,但只有當某一行尚不存在給定的產品?
我基本上需要的東西添加到我的WHERE
條款,以確定是否已存在某行:
AND `exists` IS NULL
我試圖創建查詢的SELECT
部分原因exists
列,但是這會搞砸列數並使INSERT
失敗。
對此有何建議?
謝謝。
非常漂亮託默勒格 - 感謝 – 2011-04-07 08:22:44
略有修改到'不EXISTS'是這樣的'AND pcl_cat_id = C。作爲產品的cat_id'可能已經在表tbl_productcategorylink中,但是在另一個類別中。再次感謝。 – 2011-04-07 10:11:43
@jakenoble:是的,我想添加類似的東西,但後來決定我無法確定這對你是對還是錯。顯然,你可以自己弄清楚。 :-)我的觀點更多的是你可以加入表達式,這使得SQL語句比原來的語句簡單和直接。 – Tomalak 2011-04-07 16:47:53