使用查询查询时是否可以限定变量范围?这有效
return queryExecute("
SELECT Title, Slug, Menu, MenuOrder
FROM qryResult
WHERE Menu = 'Y'
ORDER BY MenuOrder
",
[],
{dbtype = "query"}
);
这不起作用。它抛出一个错误
return queryExecute("
SELECT Title, Slug, Menu, MenuOrder
FROM local.qryResult
WHERE Menu = 'Y'
ORDER BY MenuOrder
",
[],
{dbtype = "query"}
);
Message
Query Of Queries syntax error.
Encountered "local. StackTrace java.sql.SQLException:
Query Of Queries syntax error.
Encountered "local. at coldfusion.sql.imq.jdbcStatement.parseSQL(jdbcStatement.java:590) at coldfusion.sql.imq.jdbcStatement.fetchResult(jdbcStatement.java:547) at ORDER BY MenuOrder ", [], {dbtype = "query"} );
最佳答案
LOCAL
是 ColdFusion Query of Query
中的保留字和 SQL
.
所以,包装 LOCAL
与 square brackets[]
像这样:
return queryExecute("
SELECT Title, Slug, Menu, MenuOrder
FROM [local].qryResult
WHERE Menu = 'Y'
ORDER BY MenuOrder
",
[],
{dbtype = "query"}
);
或
对函数局部作用域使用其他名称,即
var newLocal = structNew();
newLocal.qryResult = queryNew("");
return queryExecute("
SELECT Title, Slug, Menu, MenuOrder
FROM newLocal.qryResult
WHERE Menu = 'Y'
ORDER BY MenuOrder
",
[],
{dbtype = "query"}
);
关于coldfusion - 查询变量范围的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33513352/