替换是替换182个条目而不是仅仅1个?

时间:2018-04-01 20:53:01

标签: mysql

我的数据库中有一个带有'package_id'1

的条目

当我执行以下命令时,我得到了响应:

  

受影响的182行

update bookings set package_id = replace(package_id, '1', '109')

然后我发现任何包含1的“package_id”已被替换为109?

这不是我想要的: - (

2 个答案:

答案 0 :(得分:2)

您的陈述不正确。你应该阅读替换的内容。

  

MySQL REPLACE()替换字符串中所有出现的子字符串。

如果您只想将package_id从1更改为109,则应该:

update bookings set package_id = '109' where package_id = '1'
  • 如果您的package_id是一个数字,则不应使用单引号

答案 1 :(得分:0)

尼克,你是在滥用替换功能。替换函数将在字段package_id中替换1乘109的所有出现。

我认为缺少where子句。