gpt4 book ai didi

MySql 子查询作为列和别名

转载 作者:行者123 更新时间:2023-11-30 00:17:05 26 4
gpt4 key购买 nike

由于我无法在 WHERE 子句中使用表达式结果,因此我需要重复该表达式。但由于我也在上面使用它,作为一个专栏 - 这似乎是浪费资源。

可以避免吗?

一些代码:

SELECT field1,
(SELECT some_field
FROM another_table) AS field2
FROM table_1
WHERE NOT field2 IS NULL
# won't work

SELECT field1,
(SELECT some_field
FROM another_table) AS field2
FROM table_1
WHERE NOT (SELECT some_field FROM another_table) IS NULL
# will work

最佳答案

将谓词从 WHERE 子句移至 HAVING 子句,您可以通过别名引用 field2:

在第一个查询中,只需将 WHERE 更改为 HAVING 即可。这会起作用的。

(HAVING 子句在准备好结果集后对其进行操作;WHERE 子句在处理过程中更早进行评估,确定哪些行包含在结果集中,并且可以过滤掉很多行,这使得事情变得更加高效。

<小时/>

注意:您的查询可能不是获取所需结果集的最有效方法;但没有足够的信息来提出建议。

关于MySql 子查询作为列和别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23568973/

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