MySql 更新查询正在删除行
MySql Update Query is Deleting Rows
我正在尝试使用查询 -
更新行(删除连字符并在连字符后删除列 str_column 中的所有字符)
UPDATE table_name
SET str_column = SUBSTRING(str_column, 0, LENGTH(str_column) - 2)
WHERE str_column = '561279-1';
但上面的查询是删除匹配的行而不是更新。
我无法理解,更新查询如何删除行??
子字符串必须以 1 而不是 0 开头
在manual中写得很清楚
A value of 0 for pos returns an empty string.
示例:
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 |
db<>fiddle here
我正在尝试使用查询 -
更新行(删除连字符并在连字符后删除列 str_column 中的所有字符)UPDATE table_name
SET str_column = SUBSTRING(str_column, 0, LENGTH(str_column) - 2)
WHERE str_column = '561279-1';
但上面的查询是删除匹配的行而不是更新。
我无法理解,更新查询如何删除行??
子字符串必须以 1 而不是 0 开头
在manual中写得很清楚
A value of 0 for pos returns an empty string.
示例:
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 |
db<>fiddle here