我正在尝试将CONCAT
2行放入另一个表中的1行。问题是CONCAT
位于目录和文件路径上,有时会跟踪' \#39;。我想知道用MySQL
执行此操作的最快方法是什么。
INSERT INTO [database.tableName] (full_path) SELECT CONCAT(A.Loc_Path, '\', A.File_Path) FROM [database.tableName2] as A where ID > 0;
目前,这在某些时候给了我正确答案。问题是Loc_Path
有一个尾随\
。
示例:
Loc_Path | File_Path
c:\test | yay.txt
c:\test\ | yay.txt
结果如下:
c:\test\yay.txt [GOOD]
c:\test\\yay.txt [BAD]
答案 0 :(得分:1)
您可以使用案例陈述来查看Loc_Path
中的\
是否结束。
SELECT CASE WHEN Loc_Path LIKE '%\\'
THEN CONCAT(A.Loc_Path, A.File_Path)
ELSE CONCAT(A.Loc_Path, '\\', A.File_Path)
END AS Result
FROM tableName2
WHERE ID > 0
或使用SUBSTRING
而不是LIKE
。
SELECT CASE WHEN substring(Loc_Path , (char_length(Loc_Path ) - 1)) = '\\'
THEN CONCAT(A.Loc_Path, A.File_Path)
ELSE CONCAT(A.Loc_Path, '\\', A.File_Path)
END AS Result
FROM tableName2
WHERE ID > 0