どのように私はこのクエリの逆を選択するか、そしてなぜ私の試みは...逆にこのクエリの逆を選択するにはどうすればよいですか?
クエリ失敗している:私がしようとすると、
SELECT * FROM table_name
where
(category_id is not null and product_id is not null)
and request_path not like '%Portal%';
:
SELECT * FROM table_name
where (category_id is null and product_id is null) or request_path like '%Portal%';
私の試みをそれぞれの結果に()を数えて加算します。すべての行に対して合計数()が得られません。それは常に合計よりも小さいので、私は逆を選択していないことを知っています。私はまた、私は選択肢をdupingしていないことを証明することはできません。
category_idとproduct_idは整数で、request_pathは決してstring.emptyまたはnullではないとします。
私は.netプログラマです。私はおそらくlinqでこれをやっても簡単にできるかもしれませんが、私はmysqlデータベースを修正しています。ストレートSQLはいつも私のアキレス腱です。
あなたは 'category_id is not null' **および**' product_id is not null 'を取り消しませんでした。 'category_idがヌルでないか、product_idがヌルでない'にします。 – ansh
それがあります。 – CarComp
https://en.wikipedia.org/wiki/De_Morgan%27s_laws - しかし、あなたは単に 'どこでもない(initial_condition)'を使うこともできます。 –