Wie wähle ich die Umkehrung dieser Abfrage, und warum sind Fehler meine Versuche ...Wie wähle ich die Umkehrung dieser Abfrage?
Abfrage zu umkehren:
SELECT * FROM table_name
where (category_id is null and product_id is null) or request_path like '%Portal%';
Mein Versuch:
SELECT * FROM table_name
where
(category_id is not null and product_id is not null)
and request_path not like '%Portal%';
Wenn ich versuche, zählen () auf die Ergebnisse von jedem und addieren sie zusammen, ich bekomme nicht die Gesamtzahl () für jede Zeile. Es ist immer weniger als die Summe, also weiß ich, dass ich nicht die Umkehrung auswähle. Ich kann auch nicht beweisen, dass ich die Auswahl nicht verfälsche.
Angenommen, category_id und product_id können Ganzzahlen sein, request_path ist nie string.empty oder null.
Ich bin ein .net Programmierer. Ich könnte dies wahrscheinlich in linq ziemlich leicht tun, aber ich repariere eine mysql Datenbank. Straight SQL war schon immer meine Achillesferse.
Sie haben 'Kategorie_ID ist nicht null' ** und ** 'Produkt_ID ist nicht null' nicht rückgängig gemacht. Machen Sie es 'category_id ist nicht null ODER Produkt-ID ist nicht null'. – ansh
Und da ist es. – CarComp
https://en.wikipedia.org/wiki/De_Morgan%27s_laws - Sie können aber auch 'where not (initial_condition)' –