CakePHP代码
$data = $this->DropDownMultiple->find('all',array(
'conditions'=>array('FIND_IN_SET(?,DropDownMultiple.interest)' => array('football')),
'order'=>'created_on desc'
)
);
SQL查询
SELECT DropDownMultiple.*
FROM `cakephp_tutorial`.`drop_down_multiples` AS `DropDownMultiple`
WHERE FIND_IN_SET('football',`DropDownMultiple`.`interest`) =
ORDER BY `created_on` DESC
语法错误
语法错误或访问冲突:1064 SQL语法中出错;检查与MySQL服务器版本对应的手册,以便在第1行的“ORDER BY
created_on
desc”附近使用正确的语法
问题是在where条件的末尾插入=
符号。为什么会这样?我哪里错了?帮助我。
答案 0 :(得分:1)
为什么不在原始问题答案的评论中使用the code that I've posted?
您似乎已设法删除the hidden chars that I've mentioned,至少它们不再存在于您在此处显示的代码中,但不确定您实际使用的代码。
但是,您没有使用我向您展示的格式:
$data = $this->DropDownMultiple->find('all', array(
'conditions' => array(
'FIND_IN_SET(?, `DropDownMultiple`.`interest`)' => 'football'
),
'order' => 'created_on desc'
)
);
请注意模型和字段名称周围的引号,最重要的是,
之后的空格。
要求空间可能是CakePHP中的错误,不确定。
另请注意,无需将值包装到数组中,即使它只包含一个条目也可以。