如何使用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>columnB=下记录的输出都是3,应该是1,2,3
我的桌子是这样的.
Column A|ColumnA1|ColumnB
A A
A B
A C列A和A1由先前的CFLOOP和SQL Insert填充。
发布于 2013-02-07 02:36:58
每次运行更新时,您都会更新所有具有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>更新:给定您更新的问题,示例更新查询可能如下所示,因为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>https://stackoverflow.com/questions/14736224
复制相似问题