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