微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MySql 更新查询正在删除行

如何解决MySql 更新查询正在删除行

我正在尝试使用查询更新行(删除连字符,并在连字符之后删除 str_column 列中的所有字符) -

UPDATE table_name
SET str_column = SUBSTRING(str_column,LENGTH(str_column) - 2)
WHERE str_column = '561279-1';

但上面的查询删除匹配的行而不是更新。

我无法理解,更新查询如何删除行??

解决方法

子串必须以 1 开头,不能以 0 开头

manual中有明确说明

pos 值为 0 返回一个空字符串。

示例:

CREATE tABLE table_name (str_column varchar(20))
INSERT INTO table_name VALUES ('561279-1')
UPDATE table_name
SET str_column = SUBSTRING(str_column,1,LENGTH(str_column) - 2)
WHERE str_column = '561279-1';
SELECT * FROM table_name
| str_column |
| :--------- |
| 561279     |

dbfiddle here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。