0

MySQLデータベースにクエリを実行して、いくつかの結果を返そうとしています。たとえばHTML、ユーザーがいくつかの検索値を入力して実行できるフォームがあります。このフォームには2つのフィールドが含まれています:BodyQuery String(これらは私のデータベーステーブルの適切なフィールドです)。

私は次のようにクエリを実行しています:

select count(*) from Message;

結果は次のとおりです。7280

このようにクエリを実行すると、次のようになります。

select count(*) from Message where body like '%%';

結果は次のとおりです。7280

本体には値がありませんnull

しかしlike、クエリに別の空を追加すると、次のようになります。

select count(*) from Message where body like '%%' and queryString like '%%';

結果は次のとおり3353です。

私のqueryString列にはいくつかのnull値が含まれていますが、これが原因であると推測しています。そのクエリで返してほしいのは、同じ数の結果(7280)であり、それらの値を無視するnullことです。MySQLを使用してこれを達成する方法は?

4

2 に答える 2

1

あなたは機能を利用することができIFNULLます:

select count(*) from Message where body like '%%' and IFNULL(queryString, " ") like '%%';
于 2012-12-03T12:31:02.893 に答える
1
WHERE ((body LIKE '%%') OR (body IS NULL))
and   ((queryString LIKE '%%') OR (queryString IS NULL))
于 2012-12-03T12:35:09.677 に答える