如何选择SQL中不包含字母的字符串?

时间:2018-03-18 18:35:28

标签: mysql sql

我有一个STR列,可能包含任何字符串。我正在使用MySql。如何在不使用正则表达式的情况下查找SQL中不包含字母的字符串?据我所知,SQL中的RegExp是[^ ...]。 那么如何在不使用[^ ...]的情况下选择字符串?

2 个答案:

答案 0 :(得分:1)

Regexp是最明智的做法。没有......的替代方案。

SELECT STR 
FROM   YourTable 
WHERE  NOT EXISTS (SELECT * 
                   FROM   (SELECT 'A' AS C 
                           UNION ALL 
                           SELECT 'B' 
                           UNION ALL 
                           SELECT 'C'
                           /* Todo. Add remaining letters */
                           ) Chars 
                   WHERE  INSTR(STR, C) > 0)

答案 1 :(得分:0)

我不确定您使用的是哪种RDBMS。但是,如果您不想使用正则表达式,则可以遍历字符串中的每个字符并检查ASCII代码。如果他们只是在48到57的范围内,他们只是数字。

注意:这可能是非常昂贵的操作