MySQL删除最后4个字母

问题描述

| 我需要一个MySQL查询(如果需要PHP,您也可以使用它),它将删除名为\'url \'的一列上所有值的结尾。 问题是我保存了具有“ 0”的网址,现在我想从数据库中的所有值中删除该结尾。 例: 旧值:
my_url.php
my_sadas.php
新值:
my_url
my_sadas
    

解决方法

UPDATE mytable
SET myfield = SUBSTRING(myfield,1,LENGTH(myfield)-4) ;
如果还要在截断之前检查字段是否以ѭ4结尾,则可以添加以下条件:
UPDATE mytable
SET myfield = SUBSTRING(myfield,LENGTH(myfield)-4)
WHERE RIGHT(myfield,4) = \'.php\' ;
哦还有
LEFT()
也可以代替
SUBSTRING()
并且应使用
CHAR_LENGTH()
代替of9ѭ,因为它是多字节安全的(而
LENGTH()
则不是):
UPDATE mytable
SET myfield = LEFT(myfield,CHAR_LENGTH(myfield)-4)
WHERE RIGHT(myfield,4) = \'.php\' ;
    ,
UPDATE files
SET fileName = SUBSTRING(fileName,(LENGTH(fileName) - 4)) ;
    ,对于可能具有双字节字符的情况,可能需要使用
CHAR_LENGTH
而不是
LENGTH
LEFT
而不是
SUBSTRING
。 希望仅将字符为“ 0”的字符(即“ 18”或“ 19”子句)一起删除。
UPDATE table SET field = CASE WHEN INSTR(field,\'.php\') > 0 THEN LEFT(field,INSTR(field,\'.php\')) ELSE field END
要么
UPDATE table SET field = LEFT(field,\'.php\')) WHERE INSTR(field,\'.php\') > 0
    ,SUBSTRING_INDEX在这种情况下更易于使用。
UPDATE mytable
SET
    mytable.url = SUBSTRING_INDEX(mytable.url,\'.php\',1)
WHERE
    mytable.url LIKE \"%.php\"
    

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...