gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 06:37:24 25 4
gpt4 key购买 nike

我有这样的书籍数据我正在尝试按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 |+---------+-------------+

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

最佳答案

如果可以的话,您应该规范化数据库。存储逗号分隔值不是可扩展的解决方案。因此,理想情况下,您的表格应该包含 book_idcategory_id

的一对多行

因此,表格应如下所示:

+---------+-------------+
| book_id | category_id |
+---------+-------------+
| 1 | 1 |
| 1 | 2 |
| 2 | 14 |
| 3 | 1 |
| 3 | 8 |
...
<小时/>

在非规范化情况下,您可以使用 Find_in_Set()功能:

SELECT book_id 
FROM your_table_name
WHERE FIND_IN_SET('1', category_id) > 0

关于mysql - 如何通过category_id选择以逗号分隔的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53183983/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com