需求
有的时候prepare update
只需要部分更新,其他字段保留原来的值,例如
update set A=?, B=?
,这里只更新A,但是prepare
语句执行的时候,
必须需要带2个参数.
实现方式
update set A=COALESCE(?, A), B=COALESCE(?, B)
prepare(NULL, 1) => 则只更新B
prepare(1, NULL) => 则只更新A
参考
- https://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#function_coalesce
- http://www.perlmonks.org/?node_id=302181