Mysql条目包含检查

时间:2016-07-13 03:40:00

标签: php mysql mysqli

我想检查一行是否包含" 9123456"我有价值的排和" + 9123456"这是匹配,另一种情况是我的价值是" 9123456"我需要检查" + 9123456"这就是我被困住的地方。

如果可能,我需要检查两种方式。这可能吗?

2 个答案:

答案 0 :(得分:1)

您可以使用replace功能从列中删除+(假设+是该列中唯一的一个)。

SELECT number FROM phonenumber WHERE replace(number, '+', '') = 9123456

演示:http://sqlfiddle.com/#!9/750609/2

或正则表达式:

SELECT number FROM phonenumber WHERE number regexp '^\\+?9123456$'

演示:http://sqlfiddle.com/#!9/750609/5

答案 1 :(得分:1)

另一种方法是将列和输入数字都投射到UNSIGNED INTEGER

SELECT
    *
FROM
    phonenumber
WHERE CAST(number AS UNSIGNED) = CAST('+9123456' AS UNSIGNED);

SQL FIDDLE DEMO

更多

在与0匹配之前,您可以在输入号码中添加column number

SELECT 
*
FROM phoneNumber WHERE number = '9123456'+0;

如果0包含表示为字符串的有效数字,则向varchar添加零(varchar)会将其转换为数字。否则结果为0

SQL FIDDLE DEMO