gpt4 book ai didi

php - SQL查询以匹配单个列中的多个值

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

这个虚拟表:

name | lesson_mode
-------------------

a | 1,2,3
b | 2,3
c | 2
d | 3

使用这个查询:

SELECT * FROM `cc_teacher` WHERE lesson_mode IN (2,3)

我明白了

name | lesson_mode
-------------------

b | 2,3
c | 2
d | 3

我在搜索结果中遇到问题,我的问题是假设,在这种情况下,我们正在谈论 lesson_mode 列,我编写了这样的 SQL 查询:

SELECT * FROM `cc_teacher` WHERE lesson_mode IN (2,3) 

但我没有找到包含1,2,3 的行,所以请帮助我。有人知道怎么做吗?

最佳答案

对您最好的帮助是修复数据结构的建议。您应该有一个 TeacherLessons 表,每个教师一行,每节课一行。 SQL 有一个很好的数据结构来存储列表。它被称为“表”,而不是“字符串”。更糟糕的是,您将数字 ID 存储为字符串。

可以使用find_in_set() 做您想做的事。它看起来像:

select *
from cc_teacher
where find_in_set(2, lesson_mode) > 0 or
find_in_set(3, lesson_mode) > 0;

但我的主要建议是通过引入联结表来修复我们的数据库结构。

关于php - SQL查询以匹配单个列中的多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27581217/

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