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

时间:2018-12-03 22:10:56

标签: mysql sql function

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

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

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

3 个答案:

答案 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',请转换为区分大小写的排序规则。