2017-10-16 87 views
0

我使用的是oracle数据库,并试图找出当字符串中存在特殊字符(',`,(,))时应返回结果的查询。Oracle SQL Query查找字符串中是否存在字符

我想这样的事情,

select username from users where username like (',`,~,(,)); 

我尝试使用下面的查询来达到同样的,

select username from users where (username like '%`%' OR username like '%~%'); 

它不考虑第二个条件和返回值的只有第一个条件。

是否有任何函数/方法可用于获取此结果?

+0

? –

+0

我正在使用Timesten数据库 – Aravind

+0

第二个查询应该为您提供所有名称包含'\''或'〜'或两者的用户。你确定它没有?还是我误解“它不考虑第二个条件”? –

回答

1

您可以使用正则表达式,并与一个条件检查所有特殊字符:

SELECT username 
FROM users 
WHERE regexp_instr(username,'[''`\(\)]') > 0 
0

老派风格没有你使用的是Oracle的数据库正则表达式

where length(translate(username, '_''`~()', '_')) <> length(username) 
相关问题