Pregunta

Empiezo a trabajar con Lithium PHP Framework.Tengo que hacer una consulta para obtener preguntas, que tienen '% de exámenes' o '% Easy%' en el campo 'Título'. He intentado hacerlo usando el código de seguimiento:

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

pero haz esta consulta:

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

¿Cómo reemplazar y con o?

gracias

¿Fue útil?

Solución

como una solución a su pregunta que puede usar en (=) en lugar de como

'conditions'    => array(
    'name' => array(
        '=' => array(
            '%easy%',
            '%test%'
        )
    )
)

Esto generará la consulta:

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

o se puede usar al buscar usando dos campos diferentes:

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

y esto generará consulta:

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top