查询一个表,找到A或B使用REGEX
问题描述:
我试图做一个正则表达式匹配MySQL查询(实际上,它MariaDB)一个表,以查找包含字符串“!Mutex”或文件夹以大写“M”结尾。查询一个表,找到A或B使用REGEX
因此,如果该单元格包含以下路径。
------------- |Path_Folder| ------------------------------------------------------- |E:\folder01\folder01\folder03\!Mutex\folder05 | |E:\folder01\folder01\folder03\folder4\!Mutex\folder06| |E:\folder01\folder01\folder03\folder04\folderM | -------------------------------------------------------
我不想试图在任何地方移植这个(没有PHP),只是试图找到结果。
答
我知道你问了一个正则表达式的解决方案,但有时候这不是答案。 :-)
您可以使用普通的SQL LIKE
表达式来执行此操作。
SELECT
Path_Folder
FROM
Your_Table
WHERE
(Path_Folder LIKE '%!Mutex%')
OR
(Path_Folder LIKE '%M')
一个LIKE
应该只是罚款你需要什么,快于正则表达式(和更容易阅读/维护)。
为什么正常的SQL'LIKE'可以完成这项工作时的正则表达式? 'WHERE(Path_Folder LIKE'%!Mutex%')或者(Path_Folder LIKE'%M')'应该可以正常工作,并且比正则表达式更快(并且更易于读取/维护)。 – 2013-02-27 23:32:07
工作!谢谢! – 2013-02-27 23:36:23
我发布了它作为答案,因为它似乎适用于您试图解决的实际问题。 :-) – 2013-02-27 23:59:14