查找在第二个位置之后的任何位置都有“r”的名称

时间:2015-11-15 21:05:22

标签: sql

我想找到在第二个位置之后的任何位置都有“r”的名字

JAVA_OPTS="$JAVA_OPTS -Dwebconsole.type=properties -Dwebconsole.jms.url=tcp://localhost:61616- Dwebconsole.jmx.url=service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi -Dwebconsole.jmx.user=admin -Dwebconsole.jmx.password=mypassw0rd"

2 个答案:

答案 0 :(得分:0)

您可以先SUBSTRING字符串,然后使用LIKE

SELECT names 
FROM Workers 
WHERE SUBSTRING(names, 3, LENGTH(names) - 2) LIKE '%r%';
  -- AND NOT LEFT(names, 2) LIKE '%r%'; --if "Raror" should not be returned

SqlFiddleDemo

最好的方法是使用REGEX但不是每个数据库都支持它。低于MySQL版本:

SELECT names 
FROM Workers 
WHERE names RLIKE '^.{2}.*r.*$';
 -- names RLIKE '^[^rR]{2}.*r.*$'; --if "Raror" should not be returned

SqlFiddleDemo2

答案 1 :(得分:0)

对于Postgres:

select *
from workers
where strpos(names ,'r') > 2