【问题标题】:Wild card in REGEXP?正则表达式中的通配符?
【发布时间】:2012-10-07 22:05:21
【问题描述】:

我在长文本列中有这样的数据:

Name: Adam Smith
Name: Bob Johnson
Name: John Hansen

是否可以在正则表达式中使用通配符?假设用户使用伪代码搜索Smith:

SELECT * FROM mytable
WHERE `file` REGEXP 'Name: %Smith%\n'

我很确定% 通配符不是正则表达式中的函数。可以这样做吗?

【问题讨论】:

  • 为什么要在每一行存储Name: ?

标签: mysql regex wildcard


【解决方案1】:

REGEXP-using 的答案是:

SELECT * FROM mytable WHERE `file` REGEXP 'Name: .*Smith.*\n'

不过LIKE更合适:

SELECT * FROM mytable WHERE `file` LIKE 'Name: %Smith%'

【讨论】:

    【解决方案2】:

    你的语法是:SELECT * FROM mytable WHERE (columnName) LIKE 'Name: %Smith%';

    酌情替换(columnName)。不清楚您的意思是不是 longtext 是列的名称,但如果是,您将用它替换它。

    【讨论】:

    • 我需要使用正则表达式,而不是 LIKE
    • 为什么? LIKE 完全符合您的要求。
    猜你喜欢
    • 2023-03-06
    • 1970-01-01
    • 2013-12-16
    • 2014-06-03
    • 2023-03-30
    • 1970-01-01
    • 2012-12-01
    • 2013-02-22
    • 1970-01-01
    相关资源
    最近更新 更多