我有一个id列表为(1,2,3 ...)
我叫它$ category_ids。现在在同一个表中有一个super_parent_category字段,表示列表中该类别的最高标签。现在我想为每个类别ID检索超级父ID。
SELECT es_super_parent,es_id
FROM ephpb2b_categories
WHERE es_id IN ({$category_ids})");
上面的查询只返回4条记录,因为$ category_ids中的所有ID都属于这4个类别。
但我想要$ category_ids中所有50条记录的结果。
所以,如果我供应1,2,4,5,6,6,76, 我应该返回1,3,4,5,6,66,2,
由于
答案 0 :(得分:1)
它对我有用。使用$category_ids
仔细检查PHP变量var_dump()
,即
我用你提供的样本数据来测试它。
SELECT es_super_parent, es_id
FROM ephpb2b_categories
WHERE es_id IN (1, 2, 4, 5, 6, 6, 76);
和下表架构:
CREATE TABLE ephpb2b_categories (
es_id INT PRIMARY KEY,
es_super_parent INT NOT NULL,
FOREIGN KEY (es_super_parent) REFERENCES ephpb2b_categories (es_id)
) ENGINE=InnoDB;
并插入一些数据:
INSERT INTO ephpb2b_categories (es_id, es_super_parent) VALUES
(0, 0),
(1, 1),
(76, 76),
(2, 76),
(3, 2),
(4, 4),
(5, 5),
(6, 6),
(66, 6);
这是一个有效的 SQL Fiddle