首页 > 解决方案 > mysql find_in_set + instr

问题描述

我必须在 MySql 中做一些特定的事情。我必须在集合中找到但不完全相同的字符串,比如 instr

find_in_set('use', 'house,useful,full,something')

像这样的东西,将返回true,因为集合中有一个包含文本'use'

现在想象使用一个值数组并仅返回那些包含所有值之一的值

find_in_set('some,use', 'house,useful,full,something')

将返回房子,有用,有东西但不完整所有这些都需要它来统计

也许我需要更好地解释

   urls
id . url
1  . www.guugle.com
2  . www.some.edu.uy
3  . www.yahuu.com.es
4  . www.any.edu.us

现在我想计算哪些有 .com 以及有多少有 .edu

select count(case when instr(url,'.edu') then id end) urlsdotedu from urls;

这将计算所有具有 .edu 扩展名的内容,但假设您有 30 个子文本,例如一起计算 gov 和 guv 扩展名,这将是一个非常复杂的选择,所以我试图找到一些类似 find_in_set + instr

标签: mysqlstring-matching

解决方案


推荐阅读