- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
请考虑以下结构数组快照:
我的数据库架构如下:
http://sqlfiddle.com/#!2/25eeb
我想计算结构键值的总和并将总和存储到数据库中。例如,我想在 blocked 列下存储 146+1 = 147 值,类似地,在 bounce 列中存储 4+1+2 = 7 等。
到目前为止,我一直在通过以下方式(如 Insert 语句所示)非常简单地访问键:
<cfquery datasource="XX.XX.X.XX" name="qCoulmnInsert">
INSERT INTO
mytable (blocked_int,
bounce_int,
date_dt,
deferred_int,
delivered_int,
drop_int
)
VALUES
<!--- loop through your array --->
<cfloop from="1" to="#arrayLen(cfData)#" index="i">
( <!--- 1 --->
<cfif structKeyExists(cfData[i], "blocked")>
<cfqueryparam CFSQLTYPE="CF_SQL_INTEGER" value="#cfData[i]["blocked"]["Other"]#">
<cfelse>
NULL
</cfif> ,
<!--- 2 --->
<cfif structKeyExists(cfData[i], "bounce")>
<cfqueryparam CFSQLTYPE="CF_SQL_INTEGER" value="#cfData[i]["bounce"]["At & T"]#">
<cfelse>
NULL
</cfif> ,
我想知道,是否有一种方法可以总结键的值,因为从图像中可以清楚地看出,键对于阻塞、弹跳、延迟等不是固定的。
请指教。
错误:
运行下面提到的方法后,我得到以下错误:
The value Cox cannot be converted to a number.
The error occurred in C:myfile.cfm: line 38
36 : <cfset total = 0>
37 : <cfloop item="subkey" collection="#struct[key]#">
38 : <cfset total += subkey>
39 : </cfloop>
40 : <cfset totals[key] = total>
不确定这里的 Cox 是什么?
此外,如果我在 INSERT 语句的上下文中说话,我将如何将它放在 <cfqueryparam>
周围?我必须在其中定义总值的标签?
请指教。
进一步的问题:
好的,所以我根据下面提到的示例得到以下输出:
我想在数据库的单个列中插入日期及其键的值。我想对所有日期重复相同的操作。
所以这是我尝试做的:
<cfquery datasource="10.11.0.130" name="qCoulmnInsert">
INSERT INTO
simplexresults.contactresults_email_account_summary_isps (date_dt,
blocked_int,
bounce_int,
deferred_int,
delivered_int,
drop_int,
open_int,
processed_int,
request_int,
spamreport_int,
uniqueopen_int
)
VALUES
<!--- loop through your structure --->
<cfloop from="1" to="#StructCount(totals)#" index="i">
( <!--- 1 --->
<cfif structKeyExists(totals[i], "blocked")>
<cfqueryparam CFSQLTYPE="CF_SQL_INTEGER" value="#totals[i].blocked#">
<cfelse>
NULL
</cfif> ,
<!--- 2 --->
<cfif structKeyExists(totals[i], "bounce")>
<cfqueryparam CFSQLTYPE="CF_SQL_INTEGER" value="#totals[i]["bounce"]">
<cfelse>
NULL
</cfif> ,
上面的东西是行不通的。另外,由于日期现在是可变的,我应该如何处理它?</p>
这是我的 sqlfiddle:
http://sqlfiddle.com/#!2/d135f
请指教。
更新的问题:
我在“VALUES”子句之后使用了以下代码并出现了一个错误:
VALUES
<cfloop collection="#totals#" item="theDate">
(
<!--- 1 --->
<cfif structKeyExists(totals[theDate], "blocked")>
<cfqueryparam CFSQLTYPE="CF_SQL_INTEGER" value="#totals[theDate].blocked#">
<cfelse>
NULL
</cfif> ,
<!--- 2 --->
<cfif structKeyExists(totals[theDate], "bounce")>
<cfqueryparam CFSQLTYPE="CF_SQL_INTEGER" value="#totals[theDate].bounce#">
<cfelse>
NULL
</cfif> ,
<!--- 3 --->
<cfif structKeyExists(totals[theDate], "deferred")>
<cfqueryparam CFSQLTYPE="CF_SQL_INTEGER" value="#totals[theDate].deferred#">
<cfelse>
NULL
</cfif> ,
<!--- 4 --->
<cfif structKeyExists(totals[theDate], "delivered")>
<cfqueryparam CFSQLTYPE="CF_SQL_INTEGER" value="#totals[theDate].delivered#">
<cfelse>
NULL
</cfif> ,
<!--- 5 --->
<cfif structKeyExists(totals[theDate], "drop")>
<cfqueryparam CFSQLTYPE="CF_SQL_INTEGER" value="#totals[theDate].drop#">
<cfelse>
NULL
</cfif> ,
<!--- 6 --->
<cfif structKeyExists(totals[theDate], "open")>
<cfqueryparam CFSQLTYPE="CF_SQL_INTEGER" value="#totals[theDate].open#">
<cfelse>
NULL
</cfif> ,
<!--- 7 --->
<cfif structKeyExists(totals[theDate], "processed")>
<cfqueryparam CFSQLTYPE="CF_SQL_INTEGER" value="#totals[theDate].processed#">
<cfelse>
NULL
</cfif> ,
<!--- 8 --->
<cfif structKeyExists(totals[theDate], "request")>
<cfqueryparam CFSQLTYPE="CF_SQL_INTEGER" value="#totals[theDate].request#">
<cfelse>
NULL
</cfif> ,
<!--- 9 --->
<cfif structKeyExists(totals[theDate], "spamreport")>
<cfqueryparam CFSQLTYPE="CF_SQL_INTEGER" value="#totals[theDate].spamreport#">
<cfelse>
NULL
</cfif> ,
<!--- 10 --->
<cfif structKeyExists(totals[theDate], "unique_open")>
<cfqueryparam CFSQLTYPE="CF_SQL_INTEGER" value="#totals[theDate].unique_open#">
<cfelse>
NULL
</cfif> ,
<!--- FOR DATES --->
<cfif structKeyExists(totals[theDate], "startdate_dt")>
<cfqueryparam CFSQLTYPE="CF_SQL_DATE" value="#totals[theDate].startdate_dt#">
<cfelse>
NULL
</cfif>,
<cfif structKeyExists(totals[theDate], "enddate_dt")>
<cfqueryparam CFSQLTYPE="CF_SQL_DATE" value="#totals[theDate].enddate_dt#">
<cfelse>
NULL
</cfif>,
<cfif structKeyExists(totals[theDate], "date")>
<cfqueryparam CFSQLTYPE="CF_SQL_DATE" value="#totals[theDate].date#">
<cfelse>
NULL
</cfif>
)
<!--- <cfif i neq arrayLen(cfData)>,</cfif> --->
</cfloop>
这是我遇到的错误:
Error Executing Database Query.
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '( ' at line 86
The error occurred in C:\myfile.cfm: line 67
Called from C:\myfolder\application.cfc: line 211
Called from C:\myfile.cfm: line 67
Called from C:\myfoldert\application.cfc: line 211
65 : VALUES
66 : <!--- loop through your array --->
67 : <cfloop collection="#totals#" item="theDate">
68 : (
69 :
我不知道为什么它会在第 67 行抛出错误。因为,当我如下测试时,我的输出没有任何错误:
<cfloop collection="#totals#" item="theDate">
Blocked:<cfoutput>#totals[theDate].blocked#</cfoutput>
Bounce: <cfoutput>#totals[theDate].bounce#</cfoutput>
</cfloop>
请让我知道我在这里做错了什么。谢谢
截至 2 月 7 日的更新问题
当我使用以下命令时,又出现一个错误:
VALUES
<cfloop from = "1" to="#arrayLen(dateArray)#" index="i">
(
<!--- get current date --->
<cfset theDate = dateArray[i]>
<!--- append a comma in between value sets --->
<cfif i gt 1>,</cfif>
<!--- 1 --->
<cfif structKeyExists(dateArray[i], "blocked")>
<cfqueryparam CFSQLTYPE="CF_SQL_INTEGER" value="#dateArray[i].blocked#">
<cfelse>
NULL
</cfif> ,
<!--- 2 --->
<cfif structKeyExists(dateArray[i], "bounce")>
<cfqueryparam CFSQLTYPE="CF_SQL_INTEGER" value="#dateArray[i].bounce#">
<cfelse>
NULL
</cfif> ,
<!--- 3 --->
<cfif structKeyExists(dateArray[i], "deferred")>
<cfqueryparam CFSQLTYPE="CF_SQL_INTEGER" value="#dateArray[i].deferred#">
<cfelse>
NULL
</cfif> ,
<!--- 4 --->
<cfif structKeyExists(dateArray[i], "delivered")>
<cfqueryparam CFSQLTYPE="CF_SQL_INTEGER" value="#dateArray[i].delivered#">
<cfelse>
NULL
</cfif> ,
<!--- 5 --->
<cfif structKeyExists(dateArray[i], "drop")>
<cfqueryparam CFSQLTYPE="CF_SQL_INTEGER" value="#dateArray[i].drop#">
<cfelse>
NULL
</cfif> ,
<!--- 6 --->
<cfif structKeyExists(dateArray[i], "open")>
<cfqueryparam CFSQLTYPE="CF_SQL_INTEGER" value="#dateArray[i].open#">
<cfelse>
NULL
</cfif> ,
<!--- 7 --->
<cfif structKeyExists(dateArray[i], "processed")>
<cfqueryparam CFSQLTYPE="CF_SQL_INTEGER" value="#dateArray[i].processed#">
<cfelse>
NULL
</cfif> ,
<!--- 8 --->
<cfif structKeyExists(dateArray[i], "request")>
<cfqueryparam CFSQLTYPE="CF_SQL_INTEGER" value="#dateArray[i].request#">
<cfelse>
NULL
</cfif> ,
<!--- 9 --->
<cfif structKeyExists(dateArray[i], "spamreport")>
<cfqueryparam CFSQLTYPE="CF_SQL_INTEGER" value="#dateArray[i].spamreport#">
<cfelse>
NULL
</cfif> ,
<!--- 10 --->
<cfif structKeyExists(dateArray[i], "unique_open")>
<cfqueryparam CFSQLTYPE="CF_SQL_INTEGER" value="#dateArray[i].unique_open#">
<cfelse>
NULL
</cfif> ,
<!--- FOR DATES --->
<cfif structKeyExists(dateArray[i], "startdate_dt")>
<cfqueryparam CFSQLTYPE="CF_SQL_DATE" value="#dateArray[i].startdate_dt#">
<cfelse>
NULL
</cfif>,
<cfif structKeyExists(dateArray[i], "enddate_dt")>
<cfqueryparam CFSQLTYPE="CF_SQL_DATE" value="#dateArray[i].enddate_dt#">
<cfelse>
NULL
</cfif>,
<cfif structKeyExists(dateArray[i], "date")>
<cfqueryparam CFSQLTYPE="CF_SQL_DATE" value="#dateArray[i].date#">
<cfelse>
NULL
</cfif>
)
<!--- <cfif i neq arrayLen(cfData)>,</cfif> --->
</cfloop>
这是我遇到的错误:
您已尝试将类型类 java.lang.String 的标量变量取消引用为具有成员的结构。
The error occurred in C:myfile.cfm: line 94
92 : <!--- 1 --->
93 : <!--- <cfif isStruct("blocked")> --->
94 : <cfif structKeyExists(dateArray[i], "blocked")>
95 : <cfqueryparam CFSQLTYPE="CF_SQL_INTEGER" value="#dateArray[i].blocked#">
96 : <cfelse>
我是不是做错了什么?我假设 coldfusion 没有链接访问转换后的日期数组,因为 Structkeyexists 在 cfif 检查中存在,但即使像下面这样单独测试它也会产生相同的错误:
<cfloop from = "1" to="#arrayLen(dateArray)#" index="i">
<cfoutput>#dateArray[i].blocked#</cfoutput>
</cfloop>
最佳答案
所以首先遍历你的结构。其次检查该结构元素的内容本身是否是结构(因此我们可以消除“日期”键)。然后循环遍历该结构,将其键的值加起来。也许有点像这样。我使用了一个单独的结构来保存总数。然后,我将仅遍历该结构以更新数据库。
<cfset totals = {}>
<cfloop index="struct" array="#cfData#">
<cfset totals[struct.date] = {}>
<cfloop item="key" collection="#struct#">
<cfif isStruct(struct[key])>
<cfset total = 0>
<cfloop item="subkey" collection="#struct[key]#">
<cfset total += struct[key][subkey]>
</cfloop>
<cfset totals[struct.date][key] = total>
</cfif>
</cfloop>
</cfloop>
关于mysql - 添加键的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21570152/
我在 php 方面遇到了一个小问题,我发现很难用语言来解释。我有一个包含键值的关联数组。我想制作一个函数(或者如果已经有一个函数),它将一个数组作为输入并删除重复项,但两种方式都是如此。 例如: 在我
我有一个在系统托盘中运行的应用程序,是否可以允许用户通过 C# 中的 Windows 键 + 键 恢复该应用程序? 谢谢 最佳答案 是的,使用 Windows API。我认为 Windows 键与 C
我正在使用 Waterline通过 Sails 查询 MySQL 数据库。我找到了 2 种方法。 不知道哪个更好? 顺便问一下,如何处理这两种情况的错误? 1. Model.findOne().whe
我正在尝试测试是否按下了 Alt 键。 我的支票类似于: private void ProcessCmdKey(Keys keyData) { if (keyData == Keys.Alt) {
我正在使用 Selenium WebDriver 和 Ruby 进行自动化测试。我需要点击一个按钮。我无法通过 id 或 css 或 xpath 获取按钮元素,因为按钮是透明的。我想使用 Tab 和
我是 IntelliJ 的新手,我看到一个启动提示说,“任何工具窗口中的 ⎋ 键都会将焦点移动到编辑器。”但是,我不知道⎋键是什么。我一直在编程很长时间。我的键盘上可能有一个我多年来一直错过的键吗?
我使用 OMDB API 创建了一个电影搜索页面。我遇到的问题是,如果我搜索一部包含多个单词的电影,此 API 会出错,因为 API 的 URL 必须在 URL 中的每个单词之间有 + 键。所以我想知
我已经用 Elasticsearch 玩了大约一天了,所以我非常陌生。我正在尝试 POST/import 一个简单的文件: { "compression" : "none", "com
enter image description here 在此示例中,要记录带有“title”和“director”键的属性值,使用 obj[key]。因为我们已经处于对象的执行上下文中:在本例中是电
我是新开类。 我使用新的电子邮件 ID 和密码在 openshift 上创建了一个项目。让我们称之为 firstApp 。我做了 rhc 设置和我的 ssh key 与我的项目相关联。 我的 frie
当我使用 Jackson 反序列化 json 字符串时,我通常不想创建所有 bean 类的属性,而且我只需要一些 json 字符串的字段,其他字段我不需要。所以我经常只在我需要的 java 类 bea
我想编写一个带有 keys/keys* 的规范,但能够内联值规范,但不支持 by design ,我明白了其背后的原因。然而,有时,本地图存在特定上下文时,您确实希望(或者只是通过遗留或第三方)键和值
my %fruit_colors = ("apple", "red", "banana", "yellow"); my @fruits = keys %fruit_colors; my @colors
我正在使用 vb.net 2008 和 DataGridView。我正在寻找允许我将 enter 键移动到右侧的下一列而不是在保持在同一列时向下移动一行的代码。 最佳答案 如果您正在确认编辑,只需移动
我刚刚开始学习编码,我遇到了这个我无法理解的问题。 “我们将添加的第二个函数称为搜索,它将以名字作为参数。它将尝试将收到的名字与我们 friend 联系人列表中的任何名字相匹配。如果它找到匹配项,就会
我已经在 Python 中运行了下面的代码,以从文本文件中生成单词列表及其计数。我该如何从“Frequency_list”变量中过滤掉计数为 1 的单词? 另外,如何将底部的打印语句循环导出到CSV
我正在尝试 XSLT 中的查找表示例,但无法使其正常工作
是否可以在 Javascript/Typescript 中编写一个将参数名称/键作为字符串返回的函数? function foo(arg) {...} let user = new User(); f
我正在尝试创建一个带有键/值的对象,但是当我看到该对象时,键没有正确填充.. 我希望键是 - 0,1,2,3 但它显示“索引”作为键。 > categories = ["09/07/2016 00:0
将 Android Studio 从 1.5 升级到 2.0 后,模拟器(现在版本为 25.1.1,我在其上配置了模拟硬件键盘)不再将 [Esc] 键识别为等同于 [Back] 按钮。 如何恢复这个有
我是一名优秀的程序员,十分优秀!