php - 如何在匹配之前用正则表达式替换 mySQL 列?

标签 php mysql regex

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

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

原因是该列可以包含各种格式,例如“012-345 6789”“(0)12-3456789”等等...

请注意:这不是一个关于如何更好地存储数据的问题。但正则表达式替换是否可能。该示例仅是为了简化问题及其本质而进行说明。

最佳答案

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

  • 编写迁移,将不同格式的数据转换为一种格式 规范
  • 将此值的格式移至您的 View 层

这种方法可以为您提供:

  • 通过此字段轻松搜索
  • 在不同 View 中灵活地为此字段使用不同格式

关于php - 如何在匹配之前用正则表达式替换 mySQL 列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35827563/

相关文章:

php - Symfony 断言类型上层

php - codeigniter 3 使用单个查询更新多个表

php - 为什么我的 PHP 查询不起作用?

javascript - 没有前导零的儒略日正则表达式

regex - 如何在Go中将正则表达式与反向引用匹配?

php - 如果表单为空则不提交表单

php - SQLSTATE[23000] : Integrity constraint violation: 1048 Column 'teamName' cannot be null

mysql - 错误: #1242 - Subquery returns more than 1 row in the query - MYSQL

mysql - 用于验证存储设备上的原子 IO 操作的应用程序?

c# - 带通配符的拼字游戏词查找器