【问题标题】:mySQL string matchingmySQL 字符串匹配
【发布时间】:2011-01-17 10:05:34
【问题描述】:

我需要查询我的数据库以查找介于 2 个日期之间的记录(这很简单)但是我需要优化搜索以便它只找到电子邮件属于某些限制的记录,基本上我需要删除任何介于 2 个日期之间且格式为

的行

x.xxxxxXXXXXX@xxxxxxxx.xxx

基本上我需要查找以字母开头后跟句号并在@ 符号前有 5 个数字的电子邮件地址。这对 mySQL 是否可行,如果可以,如果不是,我如何使用 PHP 搜索这些电子邮件地址?

【问题讨论】:

  • @ 之前必须存在 5 个数字,否则可能存在任何其他字符。请给出此类电子邮件地址的任何示例。

标签: php mysql sql regex


【解决方案1】:

您需要使用正则表达式。 MySQL 5.1 支持这些:documentation page。这也可以在 PHP 中使用preg_match 来完成。

你的正则表达式可能看起来像:[a-zA-Z]\.[a-zA-Z]+[0-9]{5}@.+

【讨论】:

    【解决方案2】:

    如果你觉得有用的话,你也可以使用like。示例

    LIKE '_.__________@______.___'
    

    但是,它不会检测数字。 在这种情况下,您必须使用正则表达式

    docs

    正则表达式应该是这样的:(从上面的例子改变)

    [a-zA-Z]{1}\.[a-zA-Z]+[0-9]{5}@([_a-z0-9\-])\.[a-zA-Z]
    

    【讨论】:

      猜你喜欢
      • 2017-12-25
      • 2017-07-02
      • 1970-01-01
      • 2011-06-22
      • 2010-12-15
      • 1970-01-01
      • 1970-01-01
      • 2018-08-06
      • 1970-01-01
      相关资源
      最近更新 更多