Sql Query获取无效条目

时间:2017-08-09 05:48:55

标签: mysql

我想要一个SQL查询来获取ph_no中的无效条目,例如具有文本(az)或特殊字符或不是10位长的条目或者长度为10位但具有特殊字符或文本的条目

I have used the following code
SELECT PH_NO FROM Table WHERE LENGTH(PH_NO)<=9
It is only fetching entries which are not 10 digit long but i want entries which are 10 digit long but contains text or special character as well

2 个答案:

答案 0 :(得分:0)

您可以尝试在where子句中使用常规表达式,当PH_NO长度小于10时,或者当长度为10且不在常规表达式中时,可以使用:

SELECT PH_NO 
FROM table1 
WHERE LENGTH(PH_NO)<=9 OR 
    (LENGTH(PH_NO)=10 AND PH_NO NOT REGEXP '^[[:digit:]]{10}$')

答案 1 :(得分:0)

此查询将帮助您实现您提供的细节

 SELECT PH_NO FROM Table WHERE LENGTH(convert(PH_NO,signed))!=10;

如果PH_NO包含任何字符,则conver()将返回1或0,因此如果您的10位数PH_NO将包含任何无效的条目,则此查询将给出正确的输出。