1
我剛剛檢查了MySQL的ON DUPLICATE KEY UPDATE
。這個查詢可以再幹嗎?
這是一個示例查詢。
$query = 'INSERT INTO `activities`
(`id`,
`hole_id`,
`name_id`,
`start_depth`,
`end_depth`,
`start_time`,
`end_time`
) VALUES (
:id,
:hole_id,
:name_id,
:start_depth,
:end_depth,
:start_time,
:end_time
) ON DUPLICATE KEY UPDATE
`id` = :id,
`hole_id` = :hole_id,
`name_id` = :name_id,
`start_depth` = :start_depth,
`end_depth` = :end_depth,
`start_time` = :start_time,
`end_time` = :end_time
';
顯然有很多重複。
有沒有辦法說「插入,或者如果存在使用現有的信息來更新」。
我看過REPLACE
,它說它插入和刪除,如果需要的話。文檔說插入或更新使用我上面使用的方法。
所以我可以消除所有更新信息的翻倍?
有趣,我很欣賞你的答案,但它仍然看起來同樣數量的SQL。理想情況下,我想要一半。但是我意識到SQL抽象有時會讓生活變得困難。 +1 – alex 2010-07-01 02:05:01
我不相信你可以減少查詢的大小。但是,通過使用VALUES(),您只需將查詢中的記錄值放入查詢中即可減少重複次數。 – 2010-07-01 02:07:07
@Imm好的,再次感謝你。 – alex 2010-07-01 02:13:14