SQL查询从特定列中的每个字段中删除某些文本?

Jos*_*ett 17 mysql

我最近记录了我的一个网站,数据库结构有点不同.

我正在尝试转换以下内容:

*----*----------------------------*
| id | file_name                  |
*----*----------------------------*    
| 1  | 1288044935741310953434.jpg |
*----*----------------------------*
| 2  | 1288044935741310352357.rar |
*----*----------------------------*
Run Code Online (Sandbox Code Playgroud)

进入以下:

*----*----------------------------*
| id | file_name                  |
*----*----------------------------*    
| 1  | 1288044935741310953434     |
*----*----------------------------*
| 2  | 1288044935741310352357     |
*----*----------------------------*
Run Code Online (Sandbox Code Playgroud)

我知道我可以用PHP做一个foreach循环,并在最后爆炸文件扩展名,并以这种方式更新每一行,但这似乎对任务的查询太多了.

是否有任何我可以运行的SQL查询允许我从file_name列中的每个字段中删除文件exentision ?

Mic*_*ski 45

您可以使用REPLACE()机MySQL中函数来执行简单的字符串替换.

UPDATE tbl SET file_name = REPLACE(file_name, '.jpg', '');
UPDATE tbl SET file_name = REPLACE(file_name, '.rar', '');
Run Code Online (Sandbox Code Playgroud)

  • `some.rare.animal.jpg` - >`somee.animel`小心;) (3认同)
  • 如果有一天他的数据包含多个扩展名,+ 1 OP应该小心。 (2认同)