web-dev-qa-db-ja.com

Mysql Phpと等しくないフィールドから選択する

Columnaがxと等しくなく、columnbがxと等しくない特定のテーブルからすべてのアイテムを選択するPHPでどのようなmysqlコマンドを実行できるのか疑問に思っています

何かのようなもの: select something from table where columna does not equal x and columnb does not equal x

何か案は?

40
Belgin Fish

キーはsqlクエリであり、文字列として設定します。

$sqlquery = "SELECT field1, field2 FROM table WHERE NOT columnA = 'x' AND NOT columbB = 'y'";

NOTを指定する方法はたくさんあることに注意してください。同様に機能するもう1つの方法は次のとおりです。

$sqlquery = "SELECT field1, field2 FROM table WHERE columnA != 'x' AND columbB != 'y'";

使用方法の完全な例を次に示します。

$link = mysql_connect($dbHost,$dbUser,$dbPass) or die("Unable to connect to database");
mysql_select_db("$dbName") or die("Unable to select database $dbName");
$sqlquery = "SELECT field1, field2 FROM table WHERE NOT columnA = 'x' AND NOT columbB = 'y'";
$result=mysql_query($sqlquery);

while ($row = mysql_fetch_assoc($result) {
//do stuff
}

上記のwhileループ内で何でもできます。 $row arrayの要素としてテーブルの各フィールドにアクセスします。つまり、$row['field1']は現在の行のfield1の値を提供し、$row['field2']field2の値。

列にNULL値が含まれる可能性がある場合、上記の構文のいずれを使用してもそれらは検出されないことに注意してください。 NULL値を含める句を追加する必要があります。

$sqlquery = "SELECT field1, field2 FROM table WHERE (NOT columnA = 'x' OR columnA IS NULL) AND (NOT columbB = 'y' OR columnB IS NULL)";
69
Jeffrey Blake

のように使用できます

NOT columnA = 'x'

または

columnA != 'x'

または

columnA <> 'x'

また、Jeffly Bakeのクエリのように、null値を含めるために、次のように記述する必要はありません。

(NOT columnA = 'x' OR columnA IS NULL)

あなたはそれを簡単にすることができます

Not columnA <=> 'x'

<=>は、演算子に等しいNull Safeです。これには、null値からの結果も含まれます。

7
Sayka

または、括弧内にステートメントを挿入することもできます。

SELECT * FROM tablename WHERE NOT (columnA = 'x')
1
hazari zulkefli
$sqlquery = "SELECT field1, field2 FROM table WHERE columnA <> 'x' AND columbB <> 'y'";

最初の演算子は有効なSQLで、2番目の演算子はMySQLの追加であるため、!=を優先してダイアモンド演算子(<>)を使用することをお勧めします。

1
Prashant Tapase
select * from table where fiels1 NOT LIKE 'x' AND field2 NOT LIKE 'y'

//これは大文字と小文字を区別しない方法で動作します

1
Affan