我知道MYSQL中的INSERT ... ON DUPLICATE KEY UPDATE
語法,但是有沒有辦法插入別的東西呢?更具體地講,說我有:MYSQL ON DUPLICATE KEY插入別的東西
INSERT INTO main (a,b,c,d,e) VALUES ('$a','$b','$c','$d','$e');
,其中列「一」是獨一無二的,包含了一個任意10位數的字母數字字符串,我是在客戶端的電子郵件發送到檢索數據鏈路的公共查詢字符串中使用從數據庫。 我知道有可能會產生相同的字符串,因爲有62^10個可能性,但想象一下$a
包含一個已經存在的10位字符串。我在$a2
中生成了第二個字符串作爲備份,現在我想修改上面的插入語句,如果$a
已經存在可以使用$a2
。所以理想情況下我正在尋找類似的東西:
INSERT INTO main (a,b,c,d,e) VALUES ('$a','$b','$c','$d','$e') ON DUPLICATE KEY USE $a2 INSTEAD OF $a;
這怎麼辦?據我所知ON DUPLICATE KEY INSERT something else
語法不存在。此外,我的條目列表長約20-25個鍵值對,所以理想情況下我正在尋找只插入不同「a」而不必重寫整個鍵值對列表的內容。 謝謝。
但這不是簡單地更新現有條目的列'a'嗎?我需要插入一個帶有獨特'a'的全新條目。 – Oliver
@Oliver。 。 。謝謝你的澄清。 –
哇,這很複雜。對不起,我不太明白這個語法。有沒有一些關鍵字丟失?例如,'SELECT 1 FROM main m'似乎沒有任何意義(可能缺少'as')?我認爲'x'也是如此。最後一行是什麼? 'FROM(SELECT ...'?你是否定義變量作爲列名?對不起,我的無知,, – Oliver