我希望MySQL字段能够引用另一行中的相同字段,并在加载到PHP时返回该字段的值。
例如,如果具有id = 1的行在列foo中具有值"bar",则在列foo中具有id = 3的行应具有值"[1]" (或类似的;1指向具有id = 1的行),并且在返回数组时,MySQL应将该值替换为"bar"。
我不是在谈论UPDATE查询。我正在尝试构建一个SELECT查询,该查询将进行适当的替换。我希望[1]是该行的永久值,并反映被引用行中应该包含的foo。
发布于 2011-10-21 11:02:52
你可以尝试这样的东西,但在不了解更多的情况下,你的里程可能会有所不同。
此外,只需使用1而不是[1]作为参考值
SELECT a.id, b.foo
FROM `foo_table` a
INNER JOIN `foo_table` b
ON CAST(a.foo AS UNSIGNED) = b.id
WHERE a.id = 3 -- or whatever更新
我更倾向于让你的表格设计更具体。例如,尝试以下结构
CREATE TABLE `foo_table` (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
foo VARCHAR(255),
parent_id INT NULL,
FOREIGN KEY (parent_id) REFERENCES `foo_table` (id)
ON DELETE CASCADE
) ENGINE=INNODB;那么您的查询可以是
SELECT a.id, COALESCE(b.foo, a.foo) AS foo
FROM foo_table a
LEFT JOIN foo_table b
ON a.parent_id IS NOT NULL
AND a.parent_id = b.id;https://stackoverflow.com/questions/7844439
复制相似问题