0
의 각 키에 LIKE 사용하는, 그래서 여기가 SQL
에 WHERE :젠드 Select 포함>, 나는 영어에 넣고하는 방법을 잘 모르겠어요 배열
SELECT "track_sub_genre".* FROM "track_sub_genre"
WHERE "track_sub_genre"."name" LIKE '%rock punk%'
OR ("track_sub_genre"."name" LIKE '%rock%' AND "track_sub_genre"."name" LIKE '%punk%')
는 SQL은 위의 코드에 의해 생성되고, 그러나 나는 아래에서 설명 할 문제가있다.
$keywords = 'rock punk';
$key_arr = explode(' ' , $keywords);
if(count($key_arr) > 1) {
$select->where(new \Zend\Db\Sql\Predicate\Like('track_sub_genre.name', '%'.$keywords.'%'));
$select->where(
new \Zend\Db\Sql\Predicate\PredicateSet(
array(
new \Zend\Db\Sql\Predicate\Like('track_sub_genre.name', '%'.$key_arr[0].'%'),
new \Zend\Db\Sql\Predicate\Like('track_sub_genre.name', '%'.$key_arr[1].'%'),
),
\Zend\Db\Sql\Predicate\PredicateSet::OP_AND
),
\Zend\Db\Sql\Predicate\PredicateSet::OP_OR
);
} else {
// Do not worry about this case
}
문제는 내가, 내가 $key_arr
에서해야합니다 얼마나 많은 단어를 알고 않을거야 때문에 나는이 SQL을 생성 할 동적 코드를 필요 물론이다.
나는 이것이 어떻게 행해졌는지 정말 궁금합니다. 미리 감사드립니다.
이 배열을 전달하고 나는 그것을 보지 않았다 . 고맙습니다! –