gpt4 book ai didi

mysql - 查询动态 mysql 列

转载 作者:太空宇宙 更新时间:2023-11-03 11:28:38 27 4
gpt4 key购买 nike

以下是可能的吗?

SELECT f.*, (SELECT QUERY WHICH PULLS OUT A STRING VALUE) AS record_type
FROM foo f
AND f.record_type > 0

本质上我想查询一个动态列。我还尝试了以下我都没有运气的方法:

SELECT f.*
FROM foo f
AND f.(SELECT QUERY WHICH PULLS OUT A STRING VALUE) > 0

这在 mysql 中甚至可能吗?

最佳答案

目前还不完全清楚我们正在尝试做什么。

是的,我们可以在 SELECT 列表中包含一个子查询。 (限制是子查询必须返回一个列,并且返回不超过一行)。这将是一个返回的

返回的值不会被解释为对外部查询中列的引用。

我们可以在 HAVING 中引用子查询返回的值子句,例如

 SELECT f.id 
, ( SELECT t.fee FROM t WHERE t.fi = 'fo' LIMIT 1 ) AS fum
FROM f
HAVING fum > 0

请注意,我们不能引用 fum在查询的 WHERE 子句中。

另请注意,我们没有资格 fumf.因为fum不是 f 中的列.

我们可以使查询成为一个内联 View ,然后外部查询可以引用 fumWHERE条款。

但就效率而言,所有这些都不太理想。查询将访问 f 中的每一行 , 以及 HAVING 中的条件访问所有行后,稍后应用子句。

同样...子查询返回的值是在结果集中返回的;这不会被解释为对 f 中列的引用。

除非是相关子查询,否则子查询将为 f 中的每一行返回相同的值,所以它本质上是一个字面值。

如果这是一个相关的子查询(包括对外部查询中 f 列的引用),那么可能是一个 JOIN操作将更好地满足规范。

同样,我们想要实现的目标并不完全清楚。


如果目标是对列的动态 引用,那么不,这不能在单个 SQL 语句中实现。

要使用 SQL 动态生成列引用,需要一个单独的 SQL 语句,然后可以使用该语句的结果生成我们要运行的 SQL 语句。

另一种方法是制作一个包含对多个列的静态引用的表达式,包括表达式中的逻辑,用于确定应该从哪些静态列引用中返回值。

关于mysql - 查询动态 mysql 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51880181/

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