該å½ã¬ã³ã¼ãããªããã°INSERTããã£ããUPDATEãããON DUPLICATE KEY UPDATE
æ®æ®µã¯ã¾ã£ããSQLæ¸ããªããã§ãããã¡ãã£ã¨å¿
è¦ãªã¿ã¹ã¯ãã§ããã®ã§æ¸ãã¾ããã
è¦ä»¶ã¯ä¸è¨ã
ã»æ¿å
¥ãã¼ã¿ã®PRIMARY KEYãéè¤ãã¦ããªããã°INSERTï¼æ°è¦è¿½å ï¼
ã»PRIMARY KEYãéè¤ãã¦ããã°UPDATEï¼ä»¥ä¸æ¡ä»¶ã®ã¨ãã®ã¿ï¼
ã»æ¡ä»¶ï¼æ¿å
¥ãã¼ã¿ã®æ´æ°æ¥ä»ããéè¤ãã¦ãããã¼ã¿ã®æ´æ°æ¥ä»ãããæ°ããã£ãå ´åã®ã¿UPDATEããã
ã¾ãã¯ä¾ã®SQLãã
ä¾ï¼
INSERT INTO user_login ( ãuser_id, code, last_update_datetime, ins_datetime, ) VALUES ( 10001, 'game1', "2013-03-28 21:12:34", now() ) ON DUPLICATE KEY UPDATE user_id=values(user_id), code=values(code), last_update_datetime= IF(last_update_datetime < values(last_update_datetime), values(last_update_datetime),last_update_datetime);
ï¼ã»æ¿å
¥ãã¼ã¿ã®PRIMARY KEYãéè¤ãã¦ããªããã°INSERTï¼æ°è¦è¿½å ï¼
ï¼ã»PRIMARY KEYãéè¤ãã¦ããã°UPDATE
ãã®è¦ä»¶ã¯ON DUPLICATE KEY UPDATEãå©ç¨ããã¨æºãããã
ï¼ã»æ¡ä»¶ï¼æ¿å
¥ãã¼ã¿ã®æ´æ°æ¥ä»ããéè¤ãã¦ãããã¼ã¿ã®æ´æ°æ¥ä»ãããæ°ããã£ãå ´åã®ã¿UPDATEããã
ãã®è¦ä»¶ã¯ã
IF(last_update_datetime < values(last_update_datetime), values(last_update_datetime),last_update_datetime);
ã§æºãããã
values(hogehoge)ã¨ããå¤ã®æå®ã®ä»æ¹ã¯
INSERTæã«å
¥ãã¯ãã ã£ãå¤ãåç
§ãããã¨ãã§ãã¾ãã
ã¤ã¾ãä»åã®å ´åã ã¨ãvalues(user_id)ã¯10001ã§ããã
values(last_update_datetime)ã¯"2013-03-28 21:12:34"ãå
¥ã£ã¦ããã¨ãããã¨ã§ãã