mysql - 更新所有行的特定部分

标签 mysql sql

<分区>

我正在尝试使用 SQL 更新所有行的特定部分。下面是一个例子:

**table **

788745.ext
998520.ext
447789.ext
174664.ext
788012.ext

我想用“.jpg”替换“.ext”部分。

最佳答案

在 MySQL 中,您可以:

update names
    set name = concat(substring_index(name, '.', 1), '.jpg')
    where name like '%.ext';

这假定名称中只有一个 .

如果您知道.ext 没有出现在名称的其他任何地方,您可以使用replace():

update names
    set name = replace(name, '.ext', '.jpg')
    where name like '%.ext';

或者您可以使用 insert() 函数替换最后三个字符:

update names
    set name = insert(name, length(name) - 2, 3, 'jpg')
    where name like '%.ext';

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

相关文章:

mysql - SQL 查询中的行顺序

sql - 通过 SQL 读取下一条/上一条记录

mysql - 数据库设计一张表或两张表

sql - 仅当列在时间戳中时如何才能找到 DAYS 的差异?

mysql:无法根据最近的时间戳创建连接

mysql - 如何保持wordpress、AWS lightsail的两个MySQL数据库同步?

mysql - 应该使用 id 还是 timestamp 来确定数据库表中行的创建顺序? (考虑到系统时钟设置不正确的可能性)

mysql - 需要帮助使用 SELECT DISTINCT 结果搜索 MySQL 数据库

mysql - 需要有关多个数据库插入操作的建议

mysql - 如何在mysql中按变量排序?