【问题标题】:Query a table to find A OR B using REGEX使用 REGEX 查询表以查找 A OR B
【发布时间】:2013-02-13 23:56:06
【问题描述】:

我正在尝试对 MySQL 查询(实际上是 MariaDB)进行正则表达式匹配,以查找包含字符串“!Mutex”的文件路径中的任何单词,或者文件夹以大写的“M”。

所以如果单元格包含以下路径。

------------- |路径_文件夹| -------------------------------------------------- ----- |E:\folder01\folder01\folder03\!Mutex\folder05 | |E:\folder01\folder01\folder03\folder4\!Mutex\folder06| |E:\folder01\folder01\folder03\folder04\folderM | -------------------------------------------------- -----

我不想将它移植到任何地方(没有 php),只是想找到结果。

【问题讨论】:

  • 当普通 SQL LIKE 可以完成这项工作时,为什么要使用正则表达式? WHERE (Path_Folder LIKE '%!Mutex%') OR (Path_Folder LIKE '%M') 应该可以正常工作,并且比正则表达式更快(并且更易于阅读/维护)。
  • 成功了!谢谢!
  • 我将其发布为答案,因为它似乎适用于您要解决的实际问题。 :-)

标签: mysql regex mariadb


【解决方案1】:

我知道您要求使用正则表达式解决方案,但有时这不是答案。 :-)

您可以使用普通的 SQL LIKE 表达式来代替。

SELECT 
  Path_Folder 
FROM 
  Your_Table 
WHERE 
  (Path_Folder LIKE '%!Mutex%') 
OR 
  (Path_Folder LIKE '%M') 

LIKE 应该可以很好地满足您的需要,并且比正则表达式更快(并且更易于阅读/维护)。

【讨论】:

    猜你喜欢
    • 2015-10-14
    • 2019-01-30
    • 1970-01-01
    • 2021-11-28
    • 1970-01-01
    • 2015-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多