MYSQLのクエリは、結果にNULL値を持つ列を除外する

aaa28:

シナリオは、私はPHPを使用して検索機能を使用してクエリを望んでいたという2つのテーブルを持っています。二つのテーブル、table_aとtable_bがあります。table_aでは、ID、名前、MIDDLE_NAME、姓、case_no列があるとtable_bも同様です。table_aデータはユーザによって手動で挿入しながらtable_bのデータはすべて、別のソースからインポートされています。table_aとtable_bから重複データが存在するインスタンスがありました。私が欲しいのはtable_bから重複データを削除することです。table_aにnull値を持つ列があることを言わせて、私が欲しいの結果から、これを除外することです。

+----------+----------+----------+     +----------+----------+----------+
| name     | surname  | case_num |     | name     | surname  | case_num |
+----------+----------+----------+     +----------+----------+----------+
|  john    |  wick    |  1434    |     |  john    |  wick    |  null    |
+----------+----------+----------+     +----------+----------+----------+
      table_a                                  table_b

私が今やったことのビューを作成し、連合を使用して2つを組み合わせることです。それは次のようになります。

+----------+----------+----------+     
| name     | surname  | case_num |     
+----------+----------+----------+     
|  john    |  wick    |  1434    |     
+----------+----------+----------+ 
|  john    | wick     |  null    |
+----------+----------+----------+

今、私が欲しいのは、このテーブルを照会すると、あるヌル値を持っていないだけの結果を示すことです

+----------+----------+----------+     
|  john    |  wick    |  1434    |     
+----------+----------+----------+

そして、自動的にNULL値を持つ行を削除することが可能である場合

+----------+----------+----------+     
|  john    |  wick    |  null    |     
+----------+----------+----------+

しかし、最初の問題は、結果からNULL値を持つ行を除いています。ここに私のクエリがあります。

SELECT * FROM created_view_table WHERE name LIKE ? OR surname LIKE ? OR case_num LIKE ? AND 
case_num <> null;

SELECT * FROM created_view_table WHERE name LIKE ? OR surname LIKE ? OR case_num LIKE ? AND 
case_num IS NOT null;

私は「%ジョン%」を検索するたびに、それは常に両方の行、NULL値を持つ列で1とされていないものを示しています。可能私は唯一のヌル値を持っていない結果を表示したい場合。

バドリーナート:

あなたは、使用している 句を使用すると、クエリとアウトブラケットに必要なように、または、以下やろう

select * from created_view_table WHERE (name LIKE ? OR 
surname LIKE ? OR case_num LIKE ?) AND  case_num is not null;

これはあなたの問題を解決します。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=16750&siteId=1