如何在匹配之前使用regexp替换mySQL列?

时间:2016-03-06 13:41:51

标签: php mysql regex

如何在MySQL中使用正则表达式重写列值以与精确字符串匹配?我只能找到相反的指南。

SELECT * FROM customers WHERE regexp_replace('([^0-9])', '', phone) = '0123456789';

原因是该列可以包含所有类型的格式,例如“012-345 6789”“(0)12-3456789”等等......

请注意:这不是关于如何更好地存储数据的问题。但是,regexp取代是否有可能。这个例子只是为了简化问题及其性质。

1 个答案:

答案 0 :(得分:2)

您可以使用以下两个步骤改进您的应用程序:

  • 编写迁移,将使用不同格式的数据转换为1 规范
  • 将此值的格式设置移动到视图层

这种方法可以为您提供:

  • 轻松搜索此字段
  • 在不同视图中为此字段使用不同格式的灵活性