Eine interessante Entdeckung: Es gibt eine Tabelle mit insgesamt 1000 Datensätzen. Nun gibt es eine Abfrageanweisung: #Abfrageanweisung 1 #Suchen Sie die Felder in der Tabelle, deren ID ,A‘ oder ,B‘ oder ,C‘ enthält. Wählen Sie * aus Tabelle1, wo die ID wie ,%A%‘ oder ,%B%‘ oder ,%C%‘ ist. #300 Ergebnisse wurden erfolgreich gefunden Also, die Abfrage ist normal, es gibt 300 Datensätze. Dann habe ich die Abfrage wahllos noch einmal eingegeben...: #Abfrageanweisung 2 #Suchen Sie die Felder in der Tabelle, deren ID nicht ‚A‘, ‚B‘ oder ‚C‘ enthält. Wählen Sie * aus Tabelle1 aus, wo die ID nicht wie ‚%A%‘ und die ID nicht wie ‚%B%‘ und die ID nicht wie ‚%C%‘ ist. #400 Ergebnisse wurden erfolgreich gefunden Also, wir haben 400 Artikel gefunden … was? ! Nur 400? ? Sollten es nicht 700 sein? ! ! Ich wurde vom Blitz getroffen – was war los? ? Logischerweise sollte „Suche die Felder in der Tabelle, deren ID ‚A‘ oder ‚B‘ oder ‚C‘ enthält“ gleichbedeutend sein mit „Suche die Felder in der Tabelle, deren ID nicht ‚A‘, ‚B‘ oder ‚C‘ enthält“! Dies wird durch Mengenoperationen ermittelt! "Suchen Sie die Felder in der Tabelle, die 'A' oder 'B' oder 'C' in ihrer ID haben" >> betrachten Sie es als >> A∪B∪C "Suchen Sie die Felder in der Tabelle, deren ID nicht ‚A‘, ‚B‘ oder ‚C‘ enthält" >> betrachten Sie es als >> ∁UA∩∁UB∩∁UC Gemäß den Operationsregeln wissen wir jedoch, dass: ∁U(A∪B∪C) = ∁UA ∩ ∁UB ∩ ∁UC Das heißt, sollten die Ergebnisse der beiden Abfrageanweisungen nicht komplementär sein? ? Theoretisch müsste die Summe der Zeilen 1000 ergeben, warum fehlen jetzt 300? Das ist seltsam. Was ist schiefgelaufen? ? Ändern Sie also die Abfrageanweisung: #Abfrageanweisung 3 #Suchen Sie die Felder in der Tabelle, deren ID nicht ‚A‘ oder ‚B‘ oder ‚C‘ enthält. Wählen Sie * aus Tabelle1 aus, wo die ID nicht enthalten ist (wählen Sie * aus Tabelle1 aus, wo die ID wie ‚%A%‘ oder ‚%B%‘ oder ‚%C%‘ ist); #700 Ergebnisse wurden erfolgreich gefunden Hä? ? Wie können wir auf diese Weise den komplementären Satz der Abfrageanweisung 1 finden? Ich habe die Ergebnisse von Abfrageanweisung 2 und Abfrageanweisung 3 verglichen und festgestellt, dass es sich bei den 300 fehlenden Datensätzen um diejenigen handelte, bei denen die ID NULL war! Mit anderen Worten, nicht so, dass „%A%“ keine NULL-Datensätze finden kann! Nach dem Verständnis stellten wir Folgendes fest: Weiteres Detailwissen gefunden ~ Ergänzung: Beachten Sie, dass das zurückgegebene Abfrageergebnis immer leer ist, wenn der nicht im Abfragewert von MySQL enthaltene Nullwert vorhanden ist Nun ist die Datenbanktabelle Wenn wir die folgende Abfrage verwenden: Wählen Sie * vom Benutzer aus wobei der Benutzername nicht in ( Benutzernamen auswählen vom Benutzer wobei id != 2 ) Zu diesem Zeitpunkt enthält das Ergebnis der Unterabfrage Nullwerte, sodass das Ergebnis immer eine leere Abfrage statt der erwarteten Zeile mit der ID 2 zurückgibt. Wir können die Abfrage leicht modifizieren: Wählen Sie * vom Benutzer aus wobei der Benutzername nicht in ( Benutzernamen auswählen vom Benutzer wobei ID != 2 und Benutzername nicht null ist ) Durch Ausschließen der leeren Benutzernamenspalte können Sie zu diesem Zeitpunkt das erwartete Ergebnis erzielen. Das Obige ist meine persönliche Erfahrung. Ich hoffe, es kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden. Sollten dennoch Fehler oder unvollständige Überlegungen vorliegen, freue ich mich über eine Korrektur. Das könnte Sie auch interessieren:
|
<<: Docker-Installation und Bereitstellung einer Analyse des Net Core-Implementierungsprozesses
>>: Implementierungsschritte von vue-element-admin zum Erstellen eines Backend-Verwaltungssystems
Heute habe ich eine Aktivität für einen roten Ums...
Als ich heute CentOS6.2 installierte, kam ich nic...
Das sogenannte Favicon, die Abkürzung für Favorite...
Ich beschäftige mich seit über einem Jahr mit Java...
In letzter Zeit haben mich viele Studenten zur Ko...
Inhaltsverzeichnis 1. Was ist eine Transaktion? 2...
Nachfrage: Diese Nachfrage ist ein dringender Bed...
Lösen Sie das Problem der verstümmelten chinesisc...
Beim Installieren einer virtuellen Maschine wird ...
Das Miniprogramm implementiert einen vollständige...
Die Installations- und Konfigurationsmethode der ...
Mehrere Spalten haben zunächst unterschiedliche I...
Kontrollkästchen sind auf Webseiten sehr verbreit...
Das Setup wird zum Schreiben kombinierter APIs ve...
Durch Hinzufügen des Schlüsselworts extra_hosts i...