如何通过category_id选择逗号分隔的数据?

时间:2018-11-07 05:23:59

标签: mysql

我有这样的图书数据 我正在尝试按category_id选择图书

例如

我有一个针对category_id的复选框 我检查category_id = 1

,我使用%1% 结果应为book_id 1,3,5 但是book_id 14,18也来了

如果我检查category_id 1和8 结果应该是book_id 3

+---------+-------------+
| book_id | category_id |
+---------+-------------+
|       1 |         1,2 |
|       2 |          14 |
|       3 |         1,8 |
|       4 |          18 |
|       5 |         1,2 |
|       6 |          11 |
+---------+-------------+

我不喜欢这样存储数据,但是我无法更改它。

1 个答案:

答案 0 :(得分:2)

如果可以,则应规范化数据库。存储逗号分隔的值不是可伸缩的解决方案。因此,理想情况下,您的表应具有从large-scalebox

的一对多行

因此,表格应如下所示:

tennis

在非规范化的情况下,可以使用Find_in_Set()函数:

book_id