質問

リチウムPHPフレームワークで作業を始めます。私は「タイトル」フィールドに '%test%'または '%Easy%'を持っている質問を受けるためのクエリを作成しなければなりません。 私はフォローのコードを使ってそれをやろうとしました:

$questions = Questions::find('all', array(
        'conditions'    => array(
            'name' => array(
                'like' => array(
                    '%easy%',
                    '%test%'
                )
            )
        )
    ));
.

しかしそれはこのクエリを作る:

SELECT * FROM `questions` AS `Questions` WHERE (`name` LIKE '%easy%' AND `name` LIKE '%test%')
.

交換方法または使う?

ありがとう

役に立ちましたか?

解決

あなたの質問に対する解決策として、like

の代わりに(=)で使用できます
'conditions'    => array(
    'name' => array(
        '=' => array(
            '%easy%',
            '%test%'
        )
    )
)
.

これはクエリを生成します:

WHERE ((`name` IN ('%easy%', '%test%')))
.

または2つの異なるフィールドを使用して検索するときに使用できる:

'conditions' => array(
    'OR' => array(
        'name' => array(
            '=' => array(
                '%easy%',
                '%test%'
            )
        ),
        'name2' => array(
            '!=' => array(
                '%easy%',
                '%test%'
            )
        )
    )
),
.

とこれはクエリを生成します:

WHERE ((`name` IN ('%easy%', '%test%')) OR (`name2` IN ('%easy%', '%test%')))
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top