我正在做一個博客網站,我需要檢查是否有標籤插入標籤到tblTag如何檢查是否存在記錄,如果不插入
此之前存在是什麼,我想:
$var_sqlTagsCheck = "IF (EXISTS(SELECT * FROM tblTag t WHERE t.tagName = '$var_tagCollectInsert'))
BEGIN
INSERT IGNORE INTO tblTag
SET tagName = '$var_tagCollectInsert'
END
ELSE
BEGIN
INSERT INTO tblTag (tagId, tagName) VALUES ('', '$var_tagCollectInsert'))
END
";
但是工作不正常,有人可以借我一些援助嗎?我錯在哪裏,這似乎是相當直接的SQL。
INSERT INTO tblTag (tagId, tagName)
SELECT '', '$var_tagCollectInsert'
WHERE NOT EXISTS(SELECT * FROM tblTag t
WHERE t.tagName = '$var_tagCollectInsert'));
MySQL的INSERT的一般形式進入是:
INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE]
[INTO] tbl_name [(col_name,...)]
SELECT ...
[ ON DUPLICATE KEY UPDATE
col_name=expr
[, col_name=expr] ... ]
究竟發生了什麼/消息? – Menztrual 2012-04-29 01:49:27
定義'工作不正常'。通常,解決方案是使用唯一索引,不管嘗試插入,並捕獲重複鍵錯誤。不要先看,然後做插入。 – EJP 2012-04-29 01:59:55
它不檢查標籤是否存在,它不起作用。即我的SQL語句是錯誤的。它給了我一個我已經設置的錯誤消息。 – 2012-04-29 02:15:23