mysql - 更新所有行的一列

标签 mysql sql

file_path的值类似于

~/uploaded/de-DE/56/57d8c7d9-dcfc-4208-9f4c-2bf369690bd5.jpeg 

我是 MySql 的新手,我无法将所有行的这些值更新为类似

~/uploaded/de-DE/56/

这只是目录(不是文件)。我想从字符串中删除文件名。

最佳答案

如果您知道文件名位于所有行上,那么像这样?

UPDATE table SET file_path = SUBSTR(file_path, 1, LENGTH(file_path) - LOCATE('/', REVERSE(file_path))+1) WHERE 1;

虽然不太漂亮,但应该可以用。

如果 MySQL 有查找最后一次出现的功能,那就更简单了,但据我所知,情况并非如此;因此就有了 LENGTH - LOCATE REVERSE 咒语。

(先备份你的表:)

关于mysql - 更新所有行的一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10869396/

相关文章:

sql - PostgreSQL INSERT INTO WITH 多个 SELECT

php - 将查询 LEFT JOIN 更改为 FULL OUTER JOIN(尊重空值) - 如何更改此设置(之后没有可怕的性能)?

php - 通过模型上的特定方法订购 CGridView

mysql - Docker + Rails + MySQL =忽略database.yml中的环境变量

php - 无法从 MySQL 数据库获取行

c# - 检查外键约束 MySQL

c# - 将特殊字符(如 ' 或 +)插入 Access 数据库

mysql - 我如何确定在 MySQL 中即将达到最大值的字段?

php - MySql inner join 需要10多秒

mysql - 时间和日期字段与 ID 字段不同步