我试图搜索一个数字的最后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搜索查询命令?
答案 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()
函数获取最后五个字符。