我有一个STR列,可能包含任何字符串。我正在使用MySql。如何在不使用正则表达式的情况下查找SQL中不包含字母的字符串?据我所知,SQL中的RegExp是[^ ...]。 那么如何在不使用[^ ...]的情况下选择字符串?
答案 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的范围内,他们只是数字。
注意:这可能是非常昂贵的操作