Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql CFWheels:在WHERE子句中使用SQL函数?_Mysql_Coldfusion_Cfwheels - Fatal编程技术网

Mysql CFWheels:在WHERE子句中使用SQL函数?

Mysql CFWheels:在WHERE子句中使用SQL函数?,mysql,coldfusion,cfwheels,Mysql,Coldfusion,Cfwheels,我在尝试在CfWheels的findAll()方法的where子句中使用SQL函数时遇到了一个问题 这里令人困惑的是,当在同一语句的select子句中使用sql函数时,它就像一个符咒 <cfset currencyInfoTest= model('pricelist').findAll(select="currencyid,name,YEAR(startDate) AS Year",where="id=5")> 我猜CFWheels可能只是在select子句中处理列映射,而

我在尝试在CfWheels的findAll()方法的where子句中使用SQL函数时遇到了一个问题


这里令人困惑的是,当在同一语句的select子句中使用sql函数时,它就像一个符咒

<cfset currencyInfoTest= model('pricelist').findAll(select="currencyid,name,YEAR(startDate) AS Year",where="id=5")>

我猜CFWheels可能只是在select子句中处理列映射,而不是在where子句中处理任何计算或操作的语法


如上所述,我需要在where子句中使用一些sql函数。有什么想法吗?

您的假设是正确的,即CFWheels在
where
参数中不允许使用SQL函数。它解析属性名的字符串,以便将它们映射到数据库中的列,并且还将
绑定应用于传入的值。但它无法解析出对SQL函数的调用

但是,您可以基于所需的SQL函数创建一个查询

型号/PriceList.cfc
中:

function init() {
  property(name="startDateYear", sql="YEAR(pricelists.startdate)";
}
在您的
findAll
呼叫中:

currencyInfo = model('pricelist').findAll(select="currencyid,name", where="startDateYear=#params.year#");

一般来说,我不知道。在这种特殊情况下,不要。从params.year创建开始和结束日期变量,并使用startDate>=params.year的1月1日和startDatecurrencyInfo = model('pricelist').findAll(select="currencyid,name", where="startDateYear=#params.year#");