在mysql中选择多类别中的行

时间:2015-05-05 14:30:29

标签: mysql

请帮助解决问题:

我有两张桌子:

product (pro_id,cat_id,...)
category(cat_id,cat_name...)

我将cat_id存储在产品中作为字符串。

例如:

在表格产品中:pro_id: 1 & cat_id: 2,3,4; pro_id=2 & cat_id: 2,3,7
在表格类别中:cat_id: 1, cat_id: 2, cat_id: 3....

现在,我想通过cat_id获取产品表中的所有记录。

例如:我想获取所有产品where cat_id=2

任何解决方案?谢谢你的帮助

2 个答案:

答案 0 :(得分:0)

只需将2作为字符串即'2'

SELECT * FROM product WHERE cat_id = '2';

答案 1 :(得分:0)

如果您想按类别表中的列搜索产品,请执行以下操作:

SELECT *, category.cat_name from product 
JOIN category on category.cat_id = CAST(product.cat_id AS UNSIGNED)
where category.cat_name like '%myname%';

我建议你为product.cat_id列创建一个索引,或者我认为你的数据库会遇到严重的性能问题......

就是这样!