gpt4 book ai didi

mysql - 如何将 find_in_set(value, column) 与类似 %% 值一起使用

转载 作者:行者123 更新时间:2023-11-29 07:59:35 25 4
gpt4 key购买 nike

Mysql 表“DemoTable”(id -> 自动递增)

id   subject_id  subject_name  question  exams
1 3 sub3 ques1 e1,e4
2 3 sub3 ques2 e1
3 2 sub2 ques3 e1
4 2 sub2 ques4 e3,e5

我想要的是以下情况的输出 - where exams like '%e1%'

subject_id  subject_name  number_of_questions
3 sub3 2
2 sub2 1

在 Stackoverflow 用户 juergen d 的帮助下,我使用了这个查询 -

SELECT subject_id, subject_name, COUNT(distinct question) as questions_count 
FROM DemoTable
where find_in_set('e1', exams) > 0
group by subject_id, subject_name

但是,此查询的问题是它输出为 -

subject_id  subject_name  questions_count 
3 sub3 1
2 sub2 1

这意味着,它只计算其中 exams = 'e1' 的行,因此它不包括第一行其中 exams = 'e1,e4' [其中被包含在正常情况下其中考试如'%e1%']

应该使用什么查询来获得所需的输出?

谢谢。问候,

最佳答案

于尔根的回答应该是正确的。而且,事实上,它应该比这个版本更好:

SELECT subject_id, subject_name, COUNT(distinct question) as questions_count 
FROM DemoTable
where exams like '%e1%'
group by subject_id, subject_name;

优点是他的版本在搜索e1时不会混淆e10e1。我怀疑您问题中的数据和您网站上的数据不同。您应该尝试设置 SQL Fiddle。

关于mysql - 如何将 find_in_set(value, column) 与类似 %% 值一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24207491/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com