比较Coldfusion cfquery中的两个字符值

比较Coldfusion cfquery中的两个字符值,coldfusion,coldfusion-9,Coldfusion,Coldfusion 9,我有一个数据库字段,其中包含VARCHAR值,如 XY23(CX Web) 我正在写一个查询,比如 SELECT qPdfs.filename, qPdfs.code, qObjects.id FROM qPdfs, qObjects WHERE qPdfs.code = qObjects.code 或者 SELECT qPdfs.filename, qPdfs.code, qObjects.id FROM qPdfs, qObjects WHERE <cfqueryparam val

我有一个数据库字段,其中包含
VARCHAR
值,如

XY23(CX Web)
我正在写一个查询,比如

SELECT qPdfs.filename, qPdfs.code, qObjects.id
FROM qPdfs, qObjects
WHERE qPdfs.code = qObjects.code
或者

SELECT qPdfs.filename, qPdfs.code, qObjects.id
FROM qPdfs, qObjects
WHERE <cfqueryparam value="#qObjects.code#" cfsqltype="CF_SQL_VARCHAR"> = <cfqueryparam value="#qPdfs.code#" cfsqltype="CF_SQL_VARCHAR">
有什么帮助吗


谢谢

这两个数据库列类型都是
varchar
?如果是这样,QoQ可能会基于列的内容应用一些隐式转换。如果某些代码都是数字,QoQ可能会在执行比较之前尝试在内部将它们转换为数字。因此出现了错误
cfqueryparam
在这里没有帮助,因为它只能用于文本,不能用于查询列。如果直接相等比较ie
ColName=ColName
导致该错误,请尝试强制转换:

WHERE CAST(qPdfs.code AS VARCHAR) = CAST(qObjects.code AS VARCHAR)

注意:QoQ字符串比较区分大小写,因此您可能希望先将列转换为大写/小写。

那么您是说这两个不同的表都有一个名为“code”的列,它是CARCHAR类型?卡拉查尔是什么?你是说可能是瓦查尔?另外-您是否尝试过连接这两个查询(实际上使用连接语法)?是的,实际上是VARCHAR。
WHERE CAST(qPdfs.code AS VARCHAR) = CAST(qObjects.code AS VARCHAR)