首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CFLOOP和SQL更新

CFLOOP和SQL更新
EN

Stack Overflow用户
提问于 2013-02-07 02:30:46
回答 1查看 359关注 0票数 1

如何使用CFLOOP更新Access DB上的记录?我尝试使用下面的代码,但它似乎给了我一个重复的值,而不是一个增量

我的代码:

代码语言:javascript
复制
<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

我的桌子是这样的.

代码语言:javascript
复制
Column A|ColumnA1|ColumnB
A         A        
A         B
A         C

列A和A1由先前的CFLOOP和SQL Insert填充。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-07 02:36:58

每次运行更新时,您都会更新所有具有columnA = 'a‘的记录,您需要在where子句中使用更多条件来立即停止更新多个行。

使用cfquery的result属性可以很容易地看到有多少行被更新,类似于下面的代码。

代码语言:javascript
复制
<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的组合使行是惟一的。

代码语言:javascript
复制
<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>
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14736224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档