2012-03-15 46 views
0

如果記錄存在於表中,我試圖更新,MySQL查詢將更新記錄的內容是什麼。如果人員存在,MySQL更新

所以例如,我想設置一個特定的列如果記錄在表中爲空。如果記錄不在表格中,我只是不希望它做任何事情。

我使用的是php和mysql

+0

是什麼讓在表中是唯一的記錄? – 2012-03-15 21:45:25

+8

爲什麼不嘗試更新記錄...如果它不存在,就不會有任何錯誤,只更新0條記錄。 – 2012-03-15 21:46:26

+0

http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html – j08691 2012-03-15 21:47:52

回答

1

首先,您需要某種記錄的唯一標識符。這可以是PRIMARY KEY,UNIQUE約束或類似的。假設你的用戶有一個username,它保證是唯一的。

您可以將您的UPDATE查詢限制爲僅影響具有該用戶名的行。所以如果用戶名不存在,什麼都不會做。

UPDATE `tbl_users` SET `target_field` = NULL WHERE `username` = "joebloggs"; 
+0

噢好吧,我不知道是否有一個更好的方式來做到這一點,而不是讓它失敗。我獨特的身份證是一個指導。 感謝Interrobang – 2012-03-15 21:57:30

+0

它不會失敗,查詢將成功。僅僅因爲查詢沒有更新行並不意味着它失敗了。例如,失敗的查詢具有無效的語法或不正確的列名稱。 – Interrobang 2012-03-15 21:59:09

0

你可以看一下,像這樣的existsing記錄和更新的ID:

Update tbl_name set field_name=new_data 
where id_column = (select id_column from tbl_name where key_column=key_value)