因此,这是我需要解决的问题:数据库中的用户正在学习一定数量的课程。这些课程都已编号,因此行courses的值可以是12, 34, 5612或”,等等。现在,我正在执行搜索查询以查找遵循特定课程的用户。我当时正在考虑使用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/

10-16 07:42