Oracle SQL Query查找字符串中是否存在字符
问题描述:
我使用的是oracle数据库,并试图找出当字符串中存在特殊字符(',`,(,))时应返回结果的查询。Oracle SQL Query查找字符串中是否存在字符
我想这样的事情,
select username from users where username like (',`,~,(,));
我尝试使用下面的查询来达到同样的,
select username from users where (username like '%`%' OR username like '%~%');
它不考虑第二个条件和返回值的只有第一个条件。
是否有任何函数/方法可用于获取此结果?
答
您可以使用正则表达式,并与一个条件检查所有特殊字符:
SELECT username
FROM users
WHERE regexp_instr(username,'[''`\(\)]') > 0
答
老派风格没有你使用的是Oracle的数据库正则表达式
where length(translate(username, '_''`~()', '_')) <> length(username)
? –
我正在使用Timesten数据库 – Aravind
第二个查询应该为您提供所有名称包含'\''或'〜'或两者的用户。你确定它没有?还是我误解“它不考虑第二个条件”? –