php - MYSQL LIKE 类别由于 % 返回错误查询

标签 php mysql sql-like

我有一个 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/

相关文章:

php - Ajax 状态为 `success` 但回调无法正常工作

php - mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows 等...期望参数 1 是资源

mysql - 无法通过实例访问 Django 管理器

mysql - 无效的分组依据函数::MySQL

regex - 如果列包含名称元素,则选择行,任何顺序

mysql - 使用 LIKE 和具有 "\"的值的搜索在 mysql 查询中不返回任何行

PHP 包含完整 URL(或网站)

mysql - 如何通过排序获取查询结果顶部的特定值?

MySQL 可用性日历

PHP下载2路径