ProgramingTip

CodeIgniter로 MySQL 쿼리, 필드가 NULL 인 행 선택

bestdevel 2020. 10. 25. 12:45
반응형

CodeIgniter로 MySQL 쿼리, 필드가 NULL 인 행 선택


CodeIgniter의 Active Record 클래스를 사용하여 MySQL 데이터베이스를 쿼리하고 있습니다. 필드가 NULL로 설정되지 않은 테이블의 행을 선택해야합니다.

$this->db->where('archived !=', 'NULL');
$q = $this->db->get('projects');

다음 쿼리 만 반환됩니다.

SELECT * FROM projects WHERE archived != 'NULL';

archived필드는 필드입니다 DATE.

이 문제를 해결하는 더 좋은 방법이 있습니까? 직접 쿼리를 사용하는 것이 좋습니다.


where('archived IS NOT NULL', null, false)

액티브 레코드에는 확실히 몇 가지 단점이 있습니다. $this->db->where()함수에 배열을 전달 하면 IS NULL이 생성됩니다. 예를 들면 :

$this->db->where(array('archived' => NULL));

생산하다

WHERE `archived` IS NULL 

장애가 있다고하는 것입니다 IS NOT NULL. 그러나 올바른 결과를 생성하고 여전히 명령문을 이스케이프하는 방법이 있습니다.

$this->db->where('archived IS NOT NULL');

생산하다

WHERE `archived` IS NOT NULL

Null은 암호화 설정하면 ...

$this->db->where('archived IS NOT', null);

null이 따옴표로 묶여 있지 않습니까?


CodeIgniter 3

뿐 :

$this->db->where('archived IS NOT NULL');

생성 된 쿼리는 다음과 가변적입니다.

WHERE archived IS NOT NULL;

$ this-> db-> where ( 'archived IS NOT NULL', null , false ); <<

역 :

$this->db->where('archived');

생성 된 쿼리는 다음과 가변적입니다.

WHERE archived IS NULL;

For가 null이 아닙니다.

where ( '보관 된 IS NOT NULL', null);

For는 null입니다.

어디에 ( '보관', null);


또 다른 옵션을 제공하기 위해 NOT ISNULL(archived)WHERE 필터로 사용할 수 있습니다 .


Codeigniter는 다음 변수없이 호출을 종료하여 "IS NULL"을 생성합니다.

$this->db->where('column');

생성 된 쿼리는 다음과 가변적입니다.

WHERE `column` IS NULL

$ this-> db-> or_where ( '종료일 IS', 'NULL', false);


할 수 있습니다 (NULL을 테스트하려는 경우)

$this->db->where_exec('archived IS NULL) 

NOT NULL을 테스트하려는 경우

$this->db->where_exec('archived IS NOT NULL) 

열이 null인지 아닌지 확인하는 한 가지 방법은

$this->db->where('archived => TRUE);
$q = $this->db->get('projects');

PHP에서 열에 데이터가 있으면 True로 사용할 수 있습니다. 거짓 명령에서 다중 비교를 사용하고 열 데이터가 null이 아닌지 확인한 다음과 같이하십시오.

다음은 where 절 (Codeignitor)에서 열을 필터링하는 방법의 완전한 예입니다. 마지막은 Not NULL 압축을 보여줍니다.

$where = array('somebit' => '1', 'status' => 'Published', 'archived ' => TRUE );
$this->db->where($where);

참고 URL : https://stackoverflow.com/questions/2489453/querying-mysql-with-codeigniter-selecting-rows-where-field-is-null

반응형