用instr()函数找到第一个和第二个字符串后,如何找到一个特定的字符串或字符?

kmbjn2e3  于 2021-06-18  发布在  Mysql
关注(0)|答案(3)|浏览(501)

我试图在我的关系数据库中找到一个字符“e”出现三次的字符串。我已经找到了一种方法,可以使用以下代码查找两次出现字符“e”的字符串:

SELECT lastname
FROM participants
WHERE INSTR(lastname, 'e') AND INSTR(SUBSTRING(lastname,INSTR(lastname, 'e') + 1), 'e');

如何找到字符串中出现三次字符“e”的字符串?

hs1rzwqc

hs1rzwqc1#

将“e”替换为空字符串,并将原始字符串的长度与替换了“e”的字符串进行比较。

gpnt7bae

gpnt7bae2#

SELECT LENGTH('efooefooe') - LENGTH(REPLACE('efooefooe', 'e', ''));

给出3。
所以:

SELECT lastname
FROM participants
WHERE LENGTH(lastname) - LENGTH(REPLACE(lastname, 'e', '')) = 3;
z4bn682m

z4bn682m3#

使用 like . 对于三次或三次以上的外观:

where lastname like '%e%e%e%'

三次亮相:

where lastname like '%e%e%e%' and lastname not like '%e%e%e%e%'

如果您有不区分大小写的排序规则并且希望避免查找 'E' ,然后转换为区分大小写的排序规则。

相关问题