MySQLでレコードがあればUPDATE、なければINSERTする方法

INSERT hoge_table (column1, column2, column3) 
  VALUES (value1, value2, value3)
ON DUPLICATE KEY UPDATE 
  column1=VALUES(column1), 
  column2=VALUES(column2), 
  column3=VALUES(column3);

UPDATE以降のVALUES関数はINSERTで指定された値を参照するためのもの。 つまり、上記SQLは、hoge_tableに該当レコードがなければcolumn1=value1、column2=value2、column3=value3で 新規レコードを作成する。 該当レコードがあれば、column1=value1、column2=value2、column3=value3でUPDATEする となる。