带和条件的CakePHP 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

我正在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->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。因为或条件是那样做的。