SQL 서버 데이터베이스에서 카운트를 가져 오는 중이고 null 값이있는 필드에 대해 0이 제공됩니다. 아래는 제가 사용하고있는 것입니다.selectrow_array가 where 절의 null 값과 작동하지 않는 이유
my $sql = q{SELECT count(*) from customer where first_name = ? and last_name = ?};
my @bind_values = ($first_name, $last_name);
my $count = $dbh->selectrow_array($sql, undef, @bind_values);
데이터베이스에서 둘 중 하나의 값이 null이면이 값은 0을 반환합니다. 전달 된 매개 변수가 undef 일 경우 prepare가 자동으로 이되지만, 왜 작동하지 않는지는 알 수 없습니다.
여기 이상한 관찰입니다. 내가 SQL 서버에 대한 토다에 값으로 SQL을 입력하면 작동 :
SELECT count(*) from customer where first_name = 'bob' and last_name is null
을하지만 난 같은 쿼리를 시도하고 FIRST_NAME = 밥과 LAST_NAME {널 (null)}에 대한 매개 변수의 값을 통과 할 때. 작동하지 않습니다.
SELECT count(*) from customer where first_name = ? and last_name = ?
디버깅 스위치를 켜고 사용자가 맞는지 확인하십시오. – Jens
그래, 디버깅을 시도했지만 DBI 준비 함수 안에 들어가면 영원히 걸리고 일식이 응답을 멈 춥니 다. –
"준비가되면 자동으로''널입니다." "- 아니, 그렇지 않습니다. – melpomene