带和条件的CakePHP Mysql查询
我正在CakePHP中运行一个Mysql查询,但是它没有输出任何结果,尽管没有显示任何错误 Mysql查询如下:带和条件的CakePHP Mysql查询,php,mysql,cakephp,Php,Mysql,Cakephp,我正在CakePHP中运行一个Mysql查询,但是它没有输出任何结果,尽管没有显示任何错误 Mysql查询如下: SELECT `isbn`, `title`, `author_name` FROM `books` WHERE `author_name` = 'William Rice' AND `title` LIKE '%Course%' ORDER BY `title` ASC 并输出结果 我在CakePHP find函数中编写了以下内容: $books = $this->Book
SELECT `isbn`, `title`, `author_name` FROM `books` WHERE `author_name` = 'William Rice' AND `title` LIKE '%Course%' ORDER BY `title` ASC
并输出结果
我在CakePHP find函数中编写了以下内容:
$books = $this->Book->find('all', array('fields'=>array('Book.isbn', 'Book.title', 'Book.author_name'),
'conditions'=>array('Book.author_name'=>'William Rice',
'AND'=>array('Book.title'=>'LIKE %Course%')),
'order'=>'Book.title ASC',
));
但是查询没有运行。是这样规定的吗?请看一下,告诉我哪里错了。谢谢。请勿使用和数组:
$books = $this->Book->find('all', array(
'fields' => array('Book.isbn', 'Book.title', 'Book.author_name'),
'conditions' => array(
'Book.author_name'=>'William Rice',
'Book.title LIKE'=>'%Course%'
),
'order'=>'Book.title ASC',
));
您必须更改查询,如下所示:
$books = $this->Book->find('all',
array('fields'=>array('Book.isbn', 'Book.title', 'Book.author_name'),
'conditions'=>array('Book.author_name'=>'William Rice',
'Book.title LIKE'=>'%Course%'),
'order'=>'Book.title ASC'
));
您只犯了一个错误,从查询中删除“AND”,删除“AND”后,您的查询将与下面的查询类似
$books = $this->Book->find('all', array(
'fields' => array('Book.isbn', 'Book.title', 'Book.author_name'),
'conditions' => array(
'Book.author_name'=>'William Rice',
'Book.title LIKE'=>'%Course%'
),
'order'=>'Book.title ASC',
)
);
阿努巴夫,谢谢,但我已经试过你的建议了。LIKE将被附加到Book.tite中,谢谢你的urdesh,但即使这样,查询也可以正常运行。唯一的问题是应该是fieldname而不是value。这样使用AND是有效的,但在这种情况下是多余的,因为它默认为AND。因为或条件是那样做的。