2

MySQL で次のクエリを実行します。

SELECT * FROM Customers
WHERE NOT Country='Germany' AND NOT Country='USA';

それは正確に正しい期待される結果を返しました。

その後、次のクエリを実行します。

SELECT * FROM Customers
WHERE NOT (Country='Germany' AND Country='USA');

今回は、テーブルに存在するすべてのレコードが返されました(クエリの結果セットSELECT * FROM Customers;

NOT 演算子が括弧付きの 2 番目のクエリで機能しない理由がわかりません。

このリンクにアクセスして確認できます:

https://www.w3schools.com/sql/trysql.asp?filename=trysql_select_where_not_and
4

4 に答える 4

1
SELECT * FROM Customers
WHERE NOT (Country='Germany' AND Country='USA');

これが本当に言っていることは、このレコードが同時に両方に等しくないということです。次の項目が陽性である行を 1 つも持つことはできませんでした。

(Country='Germany' AND Country='USA')

次のようにすると、探している結果が得られます。

Where Country not in ('Germany', 'USA')
于 2017-03-30T18:59:40.730 に答える