查询mysql的电话号码很多格式

时间:2014-06-05 21:35:49

标签: mysql

我试图搜索一个数字的最后5位数字与12匹配

例如 文本栏" tel"包含" 44 20 01122 4455"可能有空格,可能没有空格。它可能没有前面的国家代码,它可能有一个" 0"它可以是从13位到4位的可变长度。

我希望能够匹配以下数字并返回记录。 44 20 01122 4455(最后13位数的空格) 4420011224455(最后13位数字没有空格) 020 01122 4455(最后10位数字,带空格) 020011224455(最后10位数字无空格) 011224455(最后9位数) 224455(最后6位数) 24455(最后5位数) 4455(最后4位数)

我需要找到的最常见问题是存储的数字为: 44 20 01122 4455(最后13位数的空格) 4420011224455(最后13位数字没有空格) 020 01122 4455(最后10位数字,带空格) 020011224455(最后10位数字无空格)

但我只能用

搜索4455或24455

我可以使用哪些mysql搜索查询命令?

2 个答案:

答案 0 :(得分:0)

你的意思是:

SELECT TRIM(LEADING ' ' FROM RIGHT(LPAD(REPLACE(tel, ' ', ''), 13, ' '), 13))

这应该用空格替换所有空格。然后它将用空格填充字符串,直到它的13个字符长(如果它只有4个字符)。然后它将修剪它填充的前导空格。

答案 1 :(得分:0)

这会有用吗?

SELECT tel
  FROM yourTable
 WHERE RIGHT( REPLACE ( tel, ' ', ''), 5) = @param

REPLACE()函数删除任何空格。 RIGHT()函数获取最后五个字符。