我的数据库包含varchar类型的电话号码列表。电话号码可以采用任何格式
12323232323
1-232-323 2323
232-323-2323
2323232323
而不是–
符号可能有(
)
,
.
或space
如果我搜索12323232323,1-232-323 2323,232-323-2323或2323232323,它应显示所有这些结果。我需要为此写一个查询。
答案 0 :(得分:10)
我认为实时做这个效率不高,我提出了两种选择。
清理数据,因此只有一种格式。
添加另一个包含干净数据的列,因此当您搜索时,搜索此列,在显示时您可以显示各种格式数据。
答案 1 :(得分:2)
我同意James的意见,但如果你真的需要按原样搜索数据库,那么MySQL的REPLACE运算符可能会让你到达目的地。像
这样的东西select * from mytable where replace(crazynumber,'-','')='23232323';
答案 2 :(得分:1)
How to Replace Multiple Characters in SQL?
Can MySQL replace multiple characters?
同意James,但如果你真的需要这样做,上面两个链接已经为你的场景提出了完美的解决方案。