繁体   English   中英

MySQL条目包含检查

[英]Mysql entry contains check

我想检查是否有任何行包含“ 9123456”,并且我有一行值“ +9123456”,这是一个匹配项,另一种情况是,我的值为“ 9123456”,我需要检查“ +9123456”,这是哪里我被困住了。

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

您可以使用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

另一种方法是将列和您的输入数字都转换为UNSIGNED INTEGER

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

SQL FIDDLE DEMO

更多:

在与column number匹配之前,可以在输入数字上加0

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

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

SQL FIDDLE DEMO

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM