這是一個2部分的問題,這是非常相關,因此爲什麼我合併成一個:將多個值插入到相同的列名中+覆蓋/更新現有條目?
第1部分
我有陣列$country
和$redirect
各具有至多3個不同的值(總和六個之間)。
但是,我的表中只有兩列,country
和redirect
。我想要使用插入查詢將$country[0], $country[1], etc
插入列country
和$redirect[0], $redirect[1], etc
與列redirect
相同。
這可能是一個愚蠢的問題,但是這個INSERT查詢是否可以工作,只是將值循環到列?
INSERT INTO table_name (country, redirect) values ('$country[0]', '$redirect[0]', '$country[1]', '$redirect[1]', '$country[2]', '$redirect[2]')
如果不是,我怎麼能得到這個工作?我可以使用for
循環,但我擔心資源使用情況。
第2部分
如何改寫/更新行,其中country
列的值已經存在。
例如,Great Britain
已存在於列country
與http://en-gb
在同一行中但在列redirect
內。
我有一個INSERT查詢,如INSERT INTO table_name (country, redirect) VALUES ('Great Britain', 'http://uk')
,我想重寫/更新,其中Great Britain
已經country
柱中存在與新redirect
值的行。
任何答案/評論將非常非常非常感謝:)!
是否希望在新行上使用多個值?而對於第二部分,你想要的是將'country'設置爲唯一索引,並將INSERT ... ON DUPLICATE KEY UPDATE。這種類型的操作有時被稱爲UPSERT(儘管這不是有效的MySQL關鍵字)。 – DaveRandom