gpt4 book ai didi

mysql - 如何在MySQL中的字符串列表中选择关键字?

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

我有两个表,分别为 tb_student (id,name,age,sex)tb_course (id,namelist,title)

例如,tb_student 数据为:

id  name   age sex
1 Tommy 11 1
2 Marry 11 0
3 Mike 11 1
4 Lucy 10 0

tb_course 数据是:

id  namelist    title
1 Tommy,Lucy math
2 Marry,Tommy English

现在如果我想获取选择数学的学生,我可以将sql编写为:

select * from tb_student where 
FIND_IN_SET(name,(select namelist from tb_course where title='math'));

没关系,它返回“Tommy”和“Lucy”。

但是现在,如果我有一个叫 Tom 的学生,并且他没有选择数学,我的 sql 也会返回 Tom

如何更改我的代码?我需要定义一个函数来循环名单吗?

最佳答案

最好的方法是标准化你的数据。但你可以做一个小技巧附加 , 来解决这个问题。

这样您就可以搜索 ,TOM, 而不是 TOM

SELECT tb_student.*
FROM tb_student
JOIN tb_course
ON concat(',', namelist, ',') LIKE
concat('%,', NAME, ',%') ;

关于mysql - 如何在MySQL中的字符串列表中选择关键字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33810147/

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