从数组mysql中选择数组

时间:2015-01-03 02:59:46

标签: mysql arrays

我有两张桌子 表类别(Cate_id,Parent_id)

Cate_id | Parent_ID

1       | 0

3       | 1

2       | 0

4       | 1

表产品(Product_id,Category_id)

Product_id | Category_id

1          | 1,3

2          | 4

如何选择category_id = 1且类别为parent = 1?

的产品ID

1 个答案:

答案 0 :(得分:1)

如果您要设计表架构,则应使用normalization进行优化。

MySQL中没有数组也没有

首先,如果RDBMS中的"列是原子",则它包含一条且只包含一条信息。试图在一列中存储多个数据是违反第一范式"。

所以你必须改变你的逻辑,如下所示,

-------------------
|Cate_id |Parent_ID|
--------------------
|1       | 0       |
--------------------
|3       | 1       |
--------------------
|2       | 0       |
--------------------
|4       | 1       |
--------------------

--------------------------
|Product_id | Category_id|
--------------------------
|1          | 1          |
--------------------------
|1          | 3          |
--------------------------
|2          | 4          |
--------------------------

希望此查询能够解决您的问题。

Select prdct.Product_id
from Products as prdct, Category as ctgory
where 
  ctgory.Cate_id = prdct.Category_id
  and prdct.category_id =1
  and ctgory.Parent_ID=1;