今天學了一個新的 MySQL 方法。我們寫程式時, 常常會用上判別式, 當一項資料本身存在於數據庫表格中, 我們會進行 UPDATE, 否則就增一項紀錄。以往我一般會用 PHP 做 if else, 先查詢是否有存在的紀錄, 有就 update, 沒有就新增, 但其實 MySQL 本身就內置了這樣的一個方法。
假設 Table 中有 a,b,c 三列, 而 a 是 primary key 或 unique, 利用以下語句便可直接做到上述的要求
INSERT INTO table (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=c+1;
是不是很方便呢? 相信很多 PHP Programmer 都如一樣忽略的 MySQL 本身的強大 function, 大家以後要多看看 MySQL 手冊了~~