2012-01-17 5 views
1

私は単純なDBクエリを持っています。基本的には、特定の文字列セットと同じでない行をすべて選択したい、または空の場合(空の場合は選択したくない場合)です。MYSQLヌルの問題

select * from tbl_user where secretCode != ('S00' OR 'S05' OR 'A10' OR '') 

secretcodeのデータ型が、私はNULL代わりの''を使用する必要があり、私はここで間違ってやっている何CHAR(4), NULL (NO), DEFAULT NONE

です:

これは私が持っているものでしょうか?

ありがとうございました。 NULLのチェック

答えて

2

私はあなたのクエリは、このようにすべきだと思います。

select * from tbl_user where secretCode NOT IN ('S00', 'S05', 'A10', '') AND 
secretCode IS NOT NULL 
+0

NOT INがキーパーです。 – Shackrock

1
select 
    * 
from 
    tbl_user 
where 
    secretCode not in ('S00', 'S05', 'A10') and secretCode not is null 

is nullまたはnot is nullで行うことshoud。

+0

フムOK]をクリックします。今、私はこれをPHPMyAdminで試しています。 '!=' ...の後ろに括弧で囲まれた値が1つ以上ある結果は得られません。 – Shackrock

+0

私の答えを見て – faq

+0

もう一度やり直せますか?私は 'のために説明する答えを更新しました'。 Mysqlがこれをサポートしているのかどうかは分かりませんが、ほとんどのRMDBSはそうです。 – ChristopheD

0

あなたはhere

SELECT * FROM `tbl_users` 
WHERE `secretCode` != ('S00' OR 'S05' OR 'A10') AND `secretCode` IS NOT NULL 
0

用途に応じIS NOT NULL演算子を使用する必要があります。

SELECT * FROM `tbl_users` WHERE `secretCode` <> ('S00' OR 'S05' OR 'A10') AND `secretCode` IS NOT NULL