因此,这是我需要解决的问题:数据库中的用户正在学习一定数量的课程。这些课程都已编号,因此行courses
的值可以是12, 34, 56
或12
或”,等等。现在,我正在执行搜索查询以查找遵循特定课程的用户。我当时正在考虑使用LIKE
,但这似乎是不切实际的解决方案,因为那时我必须按以下方式进行匹配:courses LIKE '$course,%' OR courses LIKE '%,$course,%' OR courses LIKE '%,$course' OR courses LIKE '$course'
由于有四种不同的匹配方式,所以我希望有一个更好的解决方案,但我自己还没有想到。有人有创意的解决方案吗?谢谢你。
最佳答案
MySQL实现了一个名为FIND_IN_SET()
的函数,该函数从逗号分隔的值中搜索一个值,例如
SELECT *
FROM TableName
WHERE FIND_IN_SET('12', 'comma separated value') > 0
MySQL FIND_IN_SET
考虑将表格标准化。将逗号分隔的值存储在单列中是一个坏主意。
关于php - 使用php和mysql查找数据库中的匹配项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15874307/