如何在 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/