MySQL 多个 Like 条件并在匹配时添加到计数器

标签 mysql sql

我有以下 Mysql 查询,我想向其中添加一个计数器,用于显示每行的匹配数。

select id, selection
FROM tablename
WHERE (selection LIKE '%13%' OR selection LIKE '%17%' OR
       selection LIKE '%19%' OR selection LIKE '%73%')

最终目标是输出每行的计数并过滤只有 2 个或更多匹配项的结果。

以下是表中的示例数据:

id - 选择

1 - 3,5,19,23

2 - 13,17,34,45

我正在寻找的是返回一个结果集,其中包含至少有 2 个数字的所有行以及其中有多少行匹配

例如:

id - 选择 - 计数

4 - 13,17,26,56 - 2

56 - 13,17,19,40 - 3

105 - 12,17,24,73 - 2

有人可以帮我修改这个特定的查询吗? 谢谢:)

最佳答案

我认为您期待这样的代码


Select id, COUNT(*) as count from (select id,selection
FROM Test
WHERE (selection LIKE '%13%' OR selection LIKE '%17%' OR
       selection LIKE '%19%' OR selection LIKE '%73%') 
       group by id,selection) t group by id having COUNT(*) >= 2

关于MySQL 多个 Like 条件并在匹配时添加到计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42528257/

相关文章:

php - 在数据库中保存javascript代码

sql - Oracle:DBMS_UTILITY.EXEC_DDL_STATEMENT 与 EXECUTE IMMEDIATE

SQL Management Studio 2008 R2 双显示器支持吗?

php - 使用xampp phpmyadmin在线购物的付款方式

MySQL:仅当第一个查询未返回结果时才执行第二个查询

mysql - 如何从mysql更新Elasticsearch数据?

mysql - 无法在 PhpStorm 中创建外键

MySQL关于重复键删除

sql - 在 java derby DB 中从 INTEGER 转换 CHAR

sql - BigQuery GROUP_CONCAT 和 ORDER BY