如何在MySQL中运行查询以搜索包含多个字符的字符串?
SELECT * FROM animals WHERE name LIKE '%r%' 只返回包含'r'的动物..
+---------+------------+
| id | name |
+---------+------------+
| 1 | zebra |
| 14 | raccoon |
| 25 | parrot |
| 49 | rhinoceros |
+---------+------------+
Run Code Online (Sandbox Code Playgroud)
SELECT * FROM animals WHERE name LIKE '%rr%' 只返回含有'rr'的动物.
+---------+------------+
| id | name |
+---------+------------+
| 25 | parrot |
+---------+------------+
Run Code Online (Sandbox Code Playgroud)
我想找到任何包含'r'的动物名称..让我们在名字的任何地方说两次.
+---------+------------+
| id | name |
+---------+------------+
| 25 | parrot |
| 49 | rhinoceros |
+---------+------------+
Run Code Online (Sandbox Code Playgroud)
任何人?
Gor*_*off 11
你试过这个吗?
select *
from animals
where name like '%r%r%'
Run Code Online (Sandbox Code Playgroud)
另一种解决方案是使用长度并替换:
select *
from animals
where length(name) - length(replace(name, 'r', '')) >= 2;
Run Code Online (Sandbox Code Playgroud)
如果你正在寻找一组字母的出现,例如' 'r'和's' ,这可能是有利的:
select *
from animals
where length(name) - length(replace(replace(name, 'r', ''), 's', '')) >= 2;
Run Code Online (Sandbox Code Playgroud)
编辑:
如果你想正是两个"R" S,你可以只使用在平等的where条款:
select *
from animals
where length(name) - length(replace(name, 'r', '')) = 2;
Run Code Online (Sandbox Code Playgroud)