我想找到在第二个位置之后的任何位置都有“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"
答案 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