我试图在我的关系数据库中找到一个出现了三次出现的字符“ e”的字符串。我已经找到了一种使用以下代码来查找字符为“ e”的字符串的方法,该字符串两次出现:
SELECT lastname
FROM participants
WHERE INSTR(lastname, 'e') AND INSTR(SUBSTRING(lastname,INSTR(lastname, 'e') + 1), 'e');
如何找到在字符串中出现3次的字符“ e”的字符串?
答案 0 :(得分:1)
用空白字符串替换'e',然后将原始字符串的长度与替换为'e'的字符串进行比较。
答案 1 :(得分:0)
SELECT LENGTH('efooefooe') - LENGTH(REPLACE('efooefooe', 'e', ''));
给予3。
所以:
SELECT lastname
FROM participants
WHERE LENGTH(lastname) - LENGTH(REPLACE(lastname, 'e', '')) = 3;
答案 2 :(得分:0)
使用like
。对于三个或更多个外观:
where lastname like '%e%e%e%'
对于三种外观:
where lastname like '%e%e%e%' and lastname not like '%e%e%e%e%'
如果您具有不区分大小写的排序规则,并希望避免找到'E'
,请转换为区分大小写的排序规则。