gpt4 book ai didi

sql - 如何将单行列转换为 SQL 中的标量?

转载 作者:行者123 更新时间:2023-11-29 04:13:37 25 4
gpt4 key购买 nike

这就是我想做的,但 MySQL 似乎不接受它。

SELECT Name, Content, Lft, Rht FROM Articles WHERE
(Lft > (SELECT Lft FROM Articles WHERE idArticle = 1))
AND WHERE
(Rht < (SELECT Rht FROM Articles WHERE idArticle = 1));

我正在实现 modified preorder tree transversal 算法,我想使用单个数据库查询获取 Article 的所有子项。

文章表如下所示:

Articles+=============+===========+| Type        | Name      |+=============+===========+| VARCHAR(45) | Name      |+-------------+-----------+| LONGTEXT    | Content   |+-------------+-----------+| INT         | Lft       |+-------------+-----------+| INT         | Rht       |+-------------+-----------+| INT         | idArticle |+-------------+-----------+

idArticle是主键,LftRht列有UNIQUE索引。

如何完成这样的事情?

*注意:我目前正在使用 MySQL,但我想尽可能避免任何 MySQL 扩展,因为有可能计划在未来的某个时候迁移到另一个数据库,如 Postgres 或 Oracle ...

最佳答案

它不被接受,因为 WHERE 关键字只能在查询中出现一次(在子查询之外):

SELECT x.name,  
x.content,
x.lft,
x.rht
FROM ARTICLES x
WHERE EXISTS(SELECT NULL
FROM ARTICLES y
WHERE y.idarticle = 1
AND y.lft < x.lft)
AND EXISTS(SELECT NULL
FROM ARTICLES z
WHERE z.idarticle = 1
AND z.rht > x.rht)

关于sql - 如何将单行列转换为 SQL 中的标量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3930030/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com