Php Mysql查询其他查询的结果集
我的MySQL数据库中有2个自定义表(DB名称:test) 我的表格数据如下: 表格:sku entity_id sku 1 24-MB01 2 24-MB03 3 24-UB02 4 24-UB01 以下是使用上述查询找到的结果集: entity_id sku category 1 24-MB01 3,5 2 24-MB03 7,3 3 24-UB02 21,50,20 4 24-UB01 4,3 实体标识sku类别 1 24-MB01 3,5 2 24-MB03 7,3 3 24-UB02 21,50,20 4 24-UB01 4,3 现在,我想使用这个结果集来查找特定类别的记录(假设类别id为3)。当我在查询中使用FIND_IN_SET时,结果中的category列中只有3个。我想让它像: entity_id sku category 1 24-MB01 3,5 2 24-MB03 7,3 4 24-UB01 4,3 实体标识sku类别 1 24-MB01 3,5 2 24-MB03 7,3 4 24-UB01 4,3Php Mysql查询其他查询的结果集,php,mysql,resultset,Php,Mysql,Resultset,我的MySQL数据库中有2个自定义表(DB名称:test) 我的表格数据如下: 表格:sku entity_id sku 1 24-MB01 2 24-MB03 3 24-UB02 4 24-UB01 以下是使用上述查询找到的结果集: entity_id sku category 1 24-MB01 3,5 2 24-MB03 7,3 3
我如何才能达到预期的结果?添加一个
具有
子句:
SELECT sku.entity_id,
sku.sku,
GROUP_CONCAT(cat.category SEPARATOR ",") as category
FROM sku, cat
WHERE cat.entity_id = sku.entity_id
GROUP by sku.entity_id
HAVING SUM(cat.category = 3) > 0;
(顺便说一句,这在MySQL中使用了true=1,false=0。在其他数据库管理系统中,如果cat.category=3,则1 ELSE 0 END)>0。)添加一个
HAVING
子句:
SELECT sku.entity_id,
sku.sku,
GROUP_CONCAT(cat.category SEPARATOR ",") as category
FROM sku, cat
WHERE cat.entity_id = sku.entity_id
GROUP by sku.entity_id
HAVING SUM(cat.category = 3) > 0;
(顺便说一句,这在MySQL中使用了true=1,false=0。在其他数据库管理系统中,SUM(cat.category=3,则1 ELSE 0 END)>0。)为什么不在查询的末尾添加具有类似“%3%”的类别的
因此,完整的查询如下所示:
SELECT sku.entity_id,
sku.sku,
GROUP_CONCAT(cat.category SEPARATOR ",") as category
FROM sku, cat
WHERE cat.entity_id = sku.entity_id
GROUP by sku.entity_id
HAVING category LIKE '%3%'
为什么不在查询的末尾添加类别为“%3%”的
因此,完整的查询如下所示:
SELECT sku.entity_id,
sku.sku,
GROUP_CONCAT(cat.category SEPARATOR ",") as category
FROM sku, cat
WHERE cat.entity_id = sku.entity_id
GROUP by sku.entity_id
HAVING category LIKE '%3%'
您可以将
HAVING
子句与FIND_IN_SET
一起使用:
SELECT sku.entity_id,
sku.sku,
GROUP_CONCAT(cat.category SEPARATOR ",") as category
FROM sku, cat
WHERE cat.entity_id = sku.entity_id
GROUP by sku.entity_id
HAVING FIND_IN_SET(3, category)
您可以将
HAVING
子句与FIND_IN_SET
一起使用:
SELECT sku.entity_id,
sku.sku,
GROUP_CONCAT(cat.category SEPARATOR ",") as category
FROM sku, cat
WHERE cat.entity_id = sku.entity_id
GROUP by sku.entity_id
HAVING FIND_IN_SET(3, category)
编辑您的问题,并添加第二个查询,其中包含FIND_IN_SET和该查询的结果。还可以添加带有少量示例数据的表的模式,这样我就可以设置一个SQL FIDLE。编辑您的问题并添加第二个查询(FIND_IN_SET)和该查询的结果。还添加了表的模式和一些示例数据,这样我就可以设置一个SQL FIDLE了。非常有趣。非常有趣。