yii FULLTEXT запрос соответствия индекса

Я хочу создать SQL-запрос в yii Framework, который выглядит следующим образом:

mysql> SELECT id, body, MATCH (title,body) AGAINST
-> ('Security implications of running MySQL as root') AS score
-> FROM articles WHERE MATCH (title,body) AGAINST
-> ('Security implications of running MySQL as root');

Я пытаюсь это, но это не работает:

    $dataProvider = new CActiveDataProvider('data', array(
            'criteria'=>array(
                'condition' => 'MATCH (title,body) AGAINST ('Security implications of running MySQL as root') AS score', 
WHERE MATCH (title,body) AGAINST ('Security implications of running MySQL as root')
                'limit' => '20',            ),
            'pagination' => false
        ));

2 ответа

Прежде всего вам необходимо выполнить запрос ALTER для столбца поиска.

 ALTER TABLE item ADD FULLTEXT(title,description,location);

Запрос для поиска

 $query = \common\models\Item::find()
             ->where(['is_active'=>'1']);
 $query->andWhere("MATCH(title,description,location) AGAINST 
 ('$searchKeywords' IN BOOLEAN MODE)"); 

http://www.yiiframework.com/doc/api/1.1/CDbCriteria

Это относится к предложению WHERE в выражении SQL

Так должно быть только MATCH (title,body) AGAINST ('Security implications of running MySQL as root')

http://www.yiiframework.com/doc/api/1.1/CDbCriteria

Это относится к предложению SELECT в операторе SQL

Здесь ваше место для id, body, MATCH (title,body) AGAINST ('Security implications of running MySQL as root') AS score

Другие вопросы по тегам