MySQL-如果列的数组值中包含数字,则获取一行

时间:2019-07-04 15:59:16

标签: php mysql

我一直在绞尽脑汁寻找这个非常简单问题的答案。

我有两个带有数据的表。第一个表包含一组类别及其ID。第二个表包含一组可以链接到每个类别的帖子。现在,我需要选择每个类别中的帖子,但是它不能按我期望的方式工作。我尝试使用IN运算符,但它适用于行中的第一个值,而不适用于其余的值。

这是表格的大致结构

类别行结构:

+===================+
| cID  |   cName    |
+===================+
|  1   |  cars      |
|  2   |  trucks    |
|  3   |  kittens   |
|  4   |  quads     |
+===================+

帖子结构:

+==========================================+
| pID  |   title    |  content  |   cats   |
+==========================================+
|  1   |  a post 1  | text here | 1,3,4    |
|  2   |  a post 2  | text here | 2,3,4    |
|  3   |  a post 3  | text here | 1,4      |
|  4   |  something | text here | 2        |
+==========================================+

当我访问cars类别的页面时,它会运行与此类似的查询

$showFrom = 1; // THE cID of the Cars category
query_function("SELECT .. FROM entries WHERE cats IN (?)", array($showFrom));
// Query function just prepares the statement and passes the variables to the function

使用此功能,我看到a post 1a post 3出现了。大。但是,如果我转到“小猫”或“四边形”页面,则看不到这些帖子。它在第一和第三项中的1以及第二和第四项中的2之后停止读取。

我考虑过使用CONTAINS函数,但是如果它们具有9个以上的类别,而您访问类别1,您将看到类别10和11,依此类推,因为它们将包含字面值1,对吗?还是我在这里想念东西?

谢谢

0 个答案:

没有答案