【发布时间】:2019-09-26 21:38:00
【问题描述】:
我有两个数组作为表单变量从报告页面传递到打印页面。这些数组是在用户浏览报告并选中复选框时构建的。我需要根据这两个数组进行查询。一个数组包含数字,另一个数组包含数据库表名。数组目前没有大小限制,但我看不到它超过 100 个值,所以我可以说每个数组中的数组值的数量总是相等的,但范围可以从 1 到 100 个值。我的问题是表数组包含一个表列表,其中包含许多重复值。每个表的数字与它在 numbers 数组中的数字在表数组的索引相同,因此它们在 idex 上匹配。
所以是这样的:
NUMBERS {1, 5, 15, 8}
TABLES {THISTAB1, THISTAB1, THISTAB2, THISTAB3}
有没有办法将这两者组合成一个可查询的对象?我希望能够做这样的事情:
<cfquery>
SELECT NUMBERS FROM CREATEDQUERY
WHERE TABLENAME = THISTAB1
</cfquery>
使用示例数据,结果集应该是这样的:
Results {1,5}
任何想法都将不胜感激!
【问题讨论】:
-
我希望我能在表格中看到更多数据。你能对它们做一个 cfdump 吗?
-
我意识到以上是一种简化,但我们需要更多细节来确定是否有更好的方法。您能否提供一个您想要查询的数据的更好示例,包括几列,以便我们了解关系以及您如何查询数据。 1. 在几个表(THISTAB1、THISTAB2、THISTAB3)中发布经过净化的数据样本 2. ... 以及预期的结果。 3. "...结果集应该是这样的..." 数组中的其他两个表呢?该数据是否也应包含在结果中,如果包含,如何?
-
我会在这里加入我的常规安全标志,但看起来您正在执行动态查询。您可能希望对这些数组进行大量验证,以确保允许用户查询您让他们查询的对象。这些数字是对列位置的引用吗?即
SELECT 3 FROM someTable?CREATEDQUERY是包含您要运行的查询文本的表吗?我不确定您在此处尝试执行的操作的结构,但我会谨慎使用位置编号而不是特定列名来查询列。 -
另外,我担心这可能是 XY 问题。退后一步,详细说明您要完成的工作,而不是您希望解决方案的外观。
标签: javascript arrays coldfusion coldfusion-2016 cfquery