gpt4 book ai didi

mysql - 为什么MySql更新忽略where子句?

转载 作者:行者123 更新时间:2023-11-29 07:28:03 24 4
gpt4 key购买 nike

我想查找表中特定列中包含未格式化文本的所有行并重新格式化它。更新似乎是正确的选择,但失败了。例如这个表:

CREATE TABLE `test` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(50) NOT NULL,
PRIMARY KEY (`id`));
INSERT INTO `test` (name) VALUES ('jerk'),('cad'),('slouch'),('slime');

运行以下更新以将 ! 添加到每个不包含它的名称(但不包含它的名称)会忽略 where 子句并始终更新:

UPDATE test SET name = CONCAT(name, '!') WHERE LOCATE(name, '!') = 0;

重复应用此更新会在 name 末尾添加更多 !

这是怎么回事?我该如何进行此条件更新?

编辑:修复拼写错误 WHERELOCATE -> WHERE LOCATE

最佳答案

看起来你对 LOCATE 的论点是倒退的。它是 LOCATE(substr, str)。 http://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_locate

关于mysql - 为什么MySql更新忽略where子句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33815192/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com