我有一个 CMS,其中包含许多不同的标签和类别。我显然将每个类别用作唯一 ID,并将它们保存在数据库中,如下所示:
cats -> 2,15,115
tags -> 13,33,113
这是一个简单的例子。
当我想通过 GET 变量 $cat 显示相关内容以在我的查询中使用时,我遇到了问题:
WHERE cats LIKE '%$cat%'
这是挑战,如果 $cat = '5' ,则它返回 5, 15, 55, 115... 等等。我只需要它只匹配“5”即可!
我确定我错过了一些非常非常简单的东西。
编辑:
find_in_set 工作得很好。然而,我的另一个挑战是我的 $GET 变量有时是这样的:$cat = 150,181
那么我如何使用变量 $cat 查看是否只有其中一个匹配项?我想根据查询匹配 150 或 181?
最佳答案
您可以使用 FIND_IN_SET()
因为列 cats
具有这些值 2,15,115
SELECT * FROM tableName WHERE FIND_IN_SET('5', cats) > 0
关于php - MYSQL LIKE 类别由于 % 返回错误查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17952249/