有人告诉我为什么ts_contact_scraped没有使用以下查询进行更新, 我想如果$ sqlContactNumber已经存在,并且如果$ sqlContactName不等于表中的相应名称,则更新s_contact_name和ts_contact_scraped。
latlng
答案 0 :(得分:0)
对我来说这很简单但很奇怪,
刚刚互换
ts_contact_scraped = CASE WHEN s_contact_name <> VALUES(s_contact_name)
THEN VALUES(ts_contact_scraped) ELSE ts_contact_scraped END
与
s_contact_name = CASE WHEN s_contact_name <> VALUES(s_contact_name)
THEN VALUES(s_contact_name) ELSE s_contact_name END
最终代码是
$sqlTimestamp = date('c');
$sql="INSERT INTO `" . DB_TABLE . "` (`s_contact_name`, `s_contact_number`, `ts_contact_scraped`)
VALUES ('$sqlContactName','$sqlContactNumber','$sqlTimestamp')
ON DUPLICATE KEY UPDATE
ts_contact_scraped = CASE WHEN s_contact_name <> VALUES(s_contact_name)
THEN VALUES(ts_contact_scraped) ELSE ts_contact_scraped END,
s_contact_name = CASE WHEN s_contact_name <> VALUES(s_contact_name)
THEN VALUES(s_contact_name) ELSE s_contact_name END";