4
我將記錄我的用戶登錄的IP地址。要做到這一點,我有一個簡單的表3列:用戶,IP,時間。時間是他們上次登錄該地址的時間。MySQL - INSERT ON DUPLICATE KEY - 2列
當他們登錄,我想行插入包含他們登錄時使用的IP數據庫,他們登錄的時間。
如果使用相同的用戶和同一IP已存在某行,我只想更新時間。一個更一般的問題:
如何插入一行或更新它,如果兩列(或多列)是相同的?
我將記錄我的用戶登錄的IP地址。要做到這一點,我有一個簡單的表3列:用戶,IP,時間。時間是他們上次登錄該地址的時間。MySQL - INSERT ON DUPLICATE KEY - 2列
當他們登錄,我想行插入包含他們登錄時使用的IP數據庫,他們登錄的時間。
如果使用相同的用戶和同一IP已存在某行,我只想更新時間。一個更一般的問題:
如何插入一行或更新它,如果兩列(或多列)是相同的?
你只需要創建複合唯一鍵user + ip
和使用INSERT ON DUPLICATE KEY UPDATE
INSERT INTO tbl (user, ip, `time`) VALUES (1, '1.2.3.4', NOW())
ON DUPLICATE KEY UPDATE `time` = NOW()
要創建索引的使用有點像
CREATE UNIQUE INDEX tbl_user_ip ON tbl (user, ip)
複合唯一鍵?我從來沒有聽說過這些! – fruitcup
@DrAgonmoray:你聽說過複合鍵或唯一鍵嗎? – zerkms
我聽說過獨特的,但我從來不知道你可以分配一個單一的關鍵到多個列。太棒了,謝謝! – fruitcup