我有一个表,我需要更新所有列可选地传递给方法.
然后我使用ColdFusion检查是否已传递每个列并将其添加到更新查询中.
做这个的最好方式是什么?我不能总是更新user_id字段,因为它是一个标识字段.是否有类似于设置1 = 1的东西,就像我在下面那样可以工作?问题只是逗号导致语法错误.
谢谢你的帮助.
update users
set 1 = 1
<cfif len(arguments.userType)>,user_type = #arguments.userType#</cfif>
<cfif len(arguments.primaryGroupId)>,primary_group_id = #arguments.primaryGroupId#</cfif>
<cfif len(arguments.email)>,email = '#arguments.email#'</cfif>
<cfif len(arguments.password)>,password = '#arguments.password#'</cfif>
<cfif len(arguments.firstName)>,first_name = '#arguments.firstName#'</cfif>
<cfif len(arguments.lastName)>,last_name = '#arguments.lastName#'</cfif>
<cfif len(arguments.status)>,status = '#arguments.status#'</cfif>
<cfif len(arguments.languageId)>,language_id = #arguments.languageId#</cfif>
<cfif len(arguments.gmtOffset)>,gmt_offset = '#arguments.gmtOffset#'</cfif>
where user_id = #arguments.userId#
Run Code Online (Sandbox Code Playgroud)
如果您正在更新,并且参数未传递,则只需将其设置为当前值即可。
update users
set
user_type = <cfif len(arguments.user_type)>#arguments.userType#<cfelse>user_type</cfif>
,primary_group_id = <cfif len(arguments.primaryGroupId)>#arguments.primaryGroupId#<cfelse>primary_group_id</cfif>
,email = <cfif len(arguments.email)>'#arguments.email#'<cfelse>email</cfif>
where user_id = #arguments.userId#
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
367 次 |
最近记录: |