你的位置:首页 > 数据库

[数据库]mysql中类似indexOf的方法LOCATE()


 

     LOCATE(substr,str), LOCATE(substr,str,pos)

         第一个语法返回substr在字符串str 的第一个出现的位置。

         第二个语法返回子符串 substr 在字符串str,从pos处开始的第一次出现的位置。如果substr 不在str 中,则返回值为0 。

 

        问题:有多个科目,一个科目下多个多选题,每个题四种答案(ABCD),统计每个科目的每道题选择ABCD的个数

    

SELECT
sum(
CASE
WHEN (
LOCATE('A', 选项名) > 0
) THEN 1 ELSE
0
END
) as A,
sum(
CASE
WHEN (
LOCATE('B', 选项名) > 0
) THEN
1
ELSE
0
END
) as B,
sum(
CASE
WHEN (
LOCATE('C', 选项名) > 0
) THEN
1
ELSE
0
END
) as C,
sum(
CASE
WHEN (
LOCATE('D', 选项名) > 0
) THEN
1
ELSE
0
END
) as D
FROM
表名