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の場合、準備は自動的にis null
になりますが、なぜ動作していないのかわかりません。
ここでは奇妙な観察です。私は、SQLサーバーのために戸田の値を持つSQLを入力すると、それが動作:
SELECT count(*) from customer where first_name = 'bob' and last_name is null
を、私は同じクエリを試してみて、FIRST_NAME =ボブとLAST_NAME {ヌル}のパラメータに値を渡すとき。それは動作しません。
SELECT count(*) from customer where first_name = ? and last_name = ?
デバッグをオンにして、あなたが正しいかどうかを確認してください。 – Jens
ええとデバッグを試みましたが、DBIの準備機能を実行すると永遠に、Eclipseが応答を停止します。 –
"私は準備が自動的に' 'ヌルです" " - いいえ、それはしません。 – melpomene