我正在尝试从MySQL数据库中检索字符串,字符串如下所示:
/test/examplepath/userlog.txt
我需要的只是要在SELECT语句中检索的字符串的前两部分(/test/examplepath
)。第二位也不是设定量。我尝试使用SUBSTRING_INDEX并更改字符串以创建更多唯一的起始/终点。还尝试过CONCAT将第一部分和第二部分连接在一起,但是由于正斜杠冲突,使用SUBSTRING_INDEX来检索我的数据无济于事。
这是我写的一个示例查询:
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(column, '/test/', -1), '/', 1) FROM table WHERE column LIKE '/test%'
。这将检索第二位,但我需要将第一位加到它上。
我知道如果我使用Ruby或Visual Studio,我可以拆分字符串或使用Regex,但我需要能够在MySQL查询中执行此操作,因为我需要能够复制更多字符串可能不是/test/
。我是否正确使用SUBSTRING?是否有更好的方法可以使用CONCAT检索/test/
部分和下一部分?
答案 0 :(得分:2)
使用AKJ88的建议解决并由luoluo澄清:
SELECT SUBSTRING_INDEX(column, '/', 3) FROM table WHERE column LIKE '/test%'
更改SUBSTRING中的数字允许我进一步浏览字符串。感谢那些贡献的人。