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