在MySQL Select查询中替换部分列值

时间:2018-03-19 09:36:46

标签: 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

它总是给我一个

  ''\

附近的

语法错误

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

有人可以开车送我吗?

由于 塞德里克

2 个答案:

答案 0 :(得分:2)

使用SUBSTRING_INDEX

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

Demo

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

答案 1 :(得分:0)

你必须逃避" \"查询中的字符。您可以添加其他" \"逃避它。

e.g。

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