gpt4 book ai didi

mysql - SQL 选择喜欢

转载 作者:行者123 更新时间:2023-12-01 00:20:14 26 4
gpt4 key购买 nike

所以我有一个这种格式的 SQL 表。

items
Field Type Null Key Default Extra
id int(11) NO PRI NULL auto_increment
name varchar(30) NO NULL
categories varchar(255)NO NULL

我正在用这样的值填充表格:

id: 1, name: "Object", categories: 1, 4, 5
id: 2, name: "Object 2", categories: 10, 14, 19

所以我们的想法是每个对象都可以有任意多的类别。

如果我运行此查询以获取类别 1 中的每个对象

SELECT * FROM `items` WHERE `categories` LIKE '%1%';

它返回两个对象,即使我真的只想要第一个对象,因为它特别属于类别 1。

有什么办法可以解决这个问题,还是我应该创建一个新表,其中每一行都是每个对象的唯一类别?

谢谢

最佳答案

这种 n 到 m 关系的默认表设计是

items table
-----------
id
name
...


categories table
----------------
id
name
...


item_categories table
---------------------
item_id
category_id

如果您随后想要选择特定类别的所有项目,您可以这样做

select i.*
from items i
join item_categories ic on ic.item_id = i.id
join categories c on ic.category_id = c.id
where c.name = 'my category 1'

关于mysql - SQL 选择喜欢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31443245/

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