为表中的每个字段选择id

时间:2014-04-07 07:12:06

标签: mysql

我有一个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,

由于

1 个答案:

答案 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