mysql - 替换 MySQL Select 查询中的部分列值

标签 mysql replace

我已阅读论坛以找到解决我的问题的方法,但在使用查询时遇到 MySQL 错误。 我想提取一个字段的一部分,即 FILE_NAME 列中 \\nt4\applications\prod\hde\atn\ 之后的所有内容 这是查询:

SELECT FILE_NAME, 
REPLACE (FILE_NAME,'\\nt4\applications\prod\hde\atn\','') as newfilename 
from atn_documents

它总是给我一个

syntax error near ''\

看起来要查看的字符串不能包含\字符??

有人可以开车送我吗?

谢谢 塞德里克

最佳答案

使用SUBSTRING_INDEX:

SELECT
    SUBSTRING_INDEX(FILE_NAME,
                    '\\nt4\\applications\\prod\\hde\\atn\\',
                    -1) AS path
FROM yourTable;

Demo

上述查询是您要求的逐字实现,因为它只返回感兴趣路径之后的内容。另请注意,您的查询甚至不运行的直接原因是,如果您希望它们作为文字,您需要通过将它们加倍来转义反斜杠 \\

关于mysql - 替换 MySQL Select 查询中的部分列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49359726/

相关文章:

java - 从 3 个表定义 hibernate 实体

javascript - 如何以可绘图格式输出 PHP 结果

python - 从字符串中提取多个子字符串

mysql - MariaDB : convert string to int when importing from CSV, 同时删除数字中的空格

php - 具有变量函数的审查系统

PHP mySQL 代码没有发布到数据库?

mysql - 如何从 Laravel 中的关系中获取 Sum

Python如何用字典中的值替换一个列表中的值?

python - 仅当子字符串单独时才替换 str 列表中的子字符串 - python

mysql - 替换select语句mysql中不同位置的多个关键字