1 coldfusion ms-access sql-update cfloop
如何使用CFLOOP更新Access DB上的记录?我尝试使用下面的代码,但它似乎给了我一个重复的值而不是增量
我的代码:
<cfloop index="i" from="1" to="3">
<cfquery name="query" datasource="datasource">
update mytable
set
columnB = #i#
where columnA = 'a'
</cfquery>
</cfloop>
Run Code Online (Sandbox Code Playgroud)
columnB =所有数字3下的记录输出,应为1,2,3
我的桌子看起来像这样....
Column A|ColumnA1|ColumnB
A A
A B
A C
Run Code Online (Sandbox Code Playgroud)
列A和A1填充了先前的CFLOOP和SQL插入.
每次运行更新时,您都要更新具有columnA ='a'的所有记录,您需要在where子句中使用更多条件来立即停止更新多个行.
您可以使用cfquery的result属性轻松查看已更新的行数,类似于下面的代码.
<cfloop index="i" from="1" to="3">
<cfquery name="query" datasource="datasource" result='updated'>
update mytable
set
columnB = #i#
where columnA = 'a'
</cfquery>
<cfdump var='#updated#' />
</cfloop>
Run Code Online (Sandbox Code Playgroud)
更新: 鉴于您更新的问题,示例更新的查询可能如此,因为columnA和ColumnA1的组合使行唯一.
<cfloop index="i" from="1" to="3">
<cfquery name="query" datasource="datasource" result='updated'>
update mytable
set
columnB = #i#
where columnA = 'a'
AND ColumnA1 = <cfqueryparam value='#i#' />
</cfquery>
<cfdump var='#updated#' />
</cfloop>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
213 次 |
| 最近记录: |