본 글에서는 Yii 프레임워크의 매개변수화된 쿼리에서 하나의 IN 쿼리만 쿼리할 수 있는 문제에 대한 해결 방법을 주로 소개하며, Yii 프레임워크에서 하나의 IN 쿼리만 쿼리할 수 있는 이유를 예제와 관련 함수를 통해 분석합니다. FIND_IN_SET 함수의 사용법과 필수 친구가 참고할 수 있습니다
본 글의 예시는 Yii 프레임워크의 매개변수화된 쿼리에서 하나의 IN 쿼리만 쿼리할 수 있는 문제에 대한 해결 방법을 설명합니다. 참고하실 수 있도록 공유해 드리며, 자세한 내용은 다음과 같습니다.
yii 프레임워크에서 IN 쿼리에 대한 매개변수화를 사용할 때 결과가 예상과 다릅니다
$sql =<<<SQL SELECT id FROM tb WHERE id IN(:ids) SQL; $db = GeneralService::getSlaveDB(); $result = $db->createCommand($sql)->query([':ids' => '1013,1015,1017'])->readAll(); print_r($result);
Array ( [0] => Array ( [id] => 1013 ) )
그래서 관련 소스 코드를 확인했습니다. yii 프레임워크에서 pdo 쿼리라는 것을 발견했기 때문에 pdo 관련 정보를 쿼리하고 그 이유를 알아냈습니다. 자리 표시자가 값 집합을 대체하도록 할 수 없습니다. 이유를 알고 있으면 대체 방법을 찾으십시오. str은 N에 있습니다. 하위 체인으로 구성된 문자열 목록 strlist에서 반환 값의 범위는 1부터 N까지입니다.
문자열 목록은 ',' 기호로 구분된 하위 체인으로 구성된 문자열입니다. 첫 번째 인수가 상수 문자열이고 두 번째 인수가 SET 유형의 열인 경우 FIND_IN_SET() 함수는 비트 계산을 사용하도록 최적화됩니다.
[ps] strlist에서 쉼표로 구성된 문자열은 평소대로 사용할 수 없으며, 쉼표 오른쪽에 공백을 추가하면 인식되지 않습니다.
위 내용은 Yii 쿼리의 IN 쿼리는 하나의 메서드만 쿼리할 수 있습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!