Mysql 列值包含字符串的SQL计数行

Mysql 列值包含字符串的SQL计数行,mysql,sql,Mysql,Sql,我想计算某一列在列值中有子字符串的行数 这不管用 select count(column_name like '%substring%') from table_name 示例:我想计算包含“否”的行数 column_name ----------- noa noit yot 预期结果:2 因为“no”是“noa”和“noit”中的子字符串。使用大小写表达式: select sum(case when column_name like '%substring%' then 1

我想计算某一列在列值中有子字符串的行数

这不管用

select count(column_name like '%substring%') 
from table_name 
示例:我想计算包含“否”的行数

column_name
-----------    
noa
noit 
yot
预期结果:2


因为“no”是“noa”和“noit”中的子字符串。

使用
大小写表达式:

select sum(case when column_name like '%substring%' then 1 else 0 end)
from table_name ;
或者,如果这是您想要的唯一值,请使用筛选和计数(*)

当查询中有其他列时,第一个更合适

我应该注意到,SQL标准还有另一种实现这一点的方法,即使用
过滤器

select count(*) filter (where column_name like '%substring%')
from table_name ;

但是,大多数数据库不支持此语法。

使用
大小写表达式:

select sum(case when column_name like '%substring%' then 1 else 0 end)
from table_name ;
或者,如果这是您想要的唯一值,请使用筛选和计数(*)

当查询中有其他列时,第一个更合适

我应该注意到,SQL标准还有另一种实现这一点的方法,即使用
过滤器

select count(*) filter (where column_name like '%substring%')
from table_name ;

但是,大多数数据库不支持此语法。

请标记您的DBMS请标记您的DBMS