Php Mysql条目包含检查
我想检查是否有任何一行包含“9123456”,并且我有一个值为“+9123456”的行,这是一个匹配项,另一种情况是我的值为“9123456”,我需要检查“+9123456”,这就是我被卡住的地方Php Mysql条目包含检查,php,mysql,mysqli,Php,Mysql,Mysqli,我想检查是否有任何一行包含“9123456”,并且我有一个值为“+9123456”的行,这是一个匹配项,另一种情况是我的值为“9123456”,我需要检查“+9123456”,这就是我被卡住的地方 如果可能的话,我需要在单个查询下检查两种方法。这可能吗?您可以使用replace功能从列中删除+(假定+是该列中唯一的一个) 演示: 或正则表达式: SELECT number FROM phonenumber WHERE number regexp '^\\+?9123456$' 演示:另一种方法
如果可能的话,我需要在单个查询下检查两种方法。这可能吗?您可以使用
replace
功能从列中删除+
(假定+
是该列中唯一的一个)
演示:
或正则表达式:
SELECT number FROM phonenumber WHERE number regexp '^\\+?9123456$'
演示:另一种方法是将列和输入的数字强制转换为
无符号整数
SELECT
*
FROM
phonenumber
WHERE CAST(number AS UNSIGNED) = CAST('+9123456' AS UNSIGNED);
更多信息:
在与您的列编号匹配之前,您可以将0
添加到输入编号中
SELECT
*
FROM phoneNumber WHERE number = '9123456'+0;
如果varchar
包含表示为字符串的有效数字,则将零(0
)添加到varchar
将把它转换为数字。否则结果为0
MYSQL支持使用和
。您可以为表架构提供示例数据作为更好的示例吗?有很多方法可以做到这一点,到目前为止,您尝试了哪些方法?该列的数据类型是什么?很好,您可以在此处查看更多的regex。注意mysql使用的是posix
,而不是pcre
。完成测试后,请务必接受答案。
SELECT
*
FROM phoneNumber WHERE number = '9123456'+0;