首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对另一行中字段的MySQL引用

问对另一行中字段的MySQL引用
EN

Stack Overflow用户
提问于 2011-10-21 10:46:54
回答 1查看 2.3K关注 0票数 1

我希望MySQL字段能够引用另一行中的相同字段,并在加载到PHP时返回该字段的值。

例如,如果具有id = 1的行在列foo中具有值"bar",则在列foo中具有id = 3的行应具有值"[1]" (或类似的;1指向具有id = 1的行),并且在返回数组时,MySQL应将该值替换为"bar"。

我不是在谈论UPDATE查询。我正在尝试构建一个SELECT查询,该查询将进行适当的替换。我希望[1]是该行的永久值,并反映被引用行中应该包含的foo。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-21 11:02:52

你可以尝试这样的东西,但在不了解更多的情况下,你的里程可能会有所不同。

此外,只需使用1而不是[1]作为参考值

代码语言:javascript
复制
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

更新

我更倾向于让你的表格设计更具体。例如,尝试以下结构

代码语言:javascript
复制
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;

那么您的查询可以是

代码语言:javascript
复制
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;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7844439

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档