来自特定列的MySQL SELECT查询

时间:2012-05-30 08:09:13

标签: php mysql

我有以下MySQL表products

id, code, name, color
1, 'D555', 'Men T-shirt', ''
2, 'D556', 'Black Men T-shirt', 'D556'
3, 'D557', 'Silver Men T-shirt', 'D556'
4, 'D558', 'Men T-shirt', ''
5, 'D559', 'Black Men T-shirt', 'D559'
6, 'D560', 'White Men T-shirt', 'D559'

如果产品有其他颜色,则列color不为空,例如: 代码为“D556”的产品为黑色,也有银色。

我正在使用SELECT * FROM products,但现在我想选择主要产品(没有子颜色),即: D555, D556, D558, D559

  • 然后我将选择产品下的子颜色(因为它是关于衣服的电子商店)。

表格的那种结构是否可能?

非常感谢您的关注!

2 个答案:

答案 0 :(得分:1)

SELECT * FROM products WHERE color = '' or code = color;

您可以考虑在两个表中对表进行规范化,如下所示:

products(id, code, name)
alt_products(id, id_products, color)

答案 1 :(得分:0)

可能有用:

SELECT `id`, `code`, `name`, GROUP_CONCAT(`color` SEPARATOR ', ')  as `colors`
FROM products 
GROUP BY `code`