Erstellen einer Testtabelle-- ---------------------------- -- Tabellenstruktur für check_test -- ---------------------------- Tabelle löschen, wenn `check_test` vorhanden ist; Tabelle „check_test“ erstellen ( `id` int(11) NICHT NULL AUTO_INCREMENT, `current_price` varchar(10) NICHT NULL, `Preis` varchar(10) NICHT NULL, PRIMÄRSCHLÜSSEL (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8; -- ---------------------------- -- Aufzeichnungen von check_test -- ---------------------------- INSERT INTO `check_test` VALUES ('1', '12', '14'); INSERT INTO `check_test` VALUES ('2', '22', '33'); INSERT INTO `check_test` VALUES ('3', '15', '8'); INSERT INTO `check_test` VALUES ('4', '9', '7'); INSERT INTO `check_test` VALUES ('5', '12', '12.9'); Wir führen das folgende SQL aus: - Suchen Sie die Datensätze, bei denen current_price kleiner als price ist. Wählen Sie * aus check_test, wobei current_price<price; ist. Wählen Sie * aus Check_Test, wobei (aktueller Preis + 0) < (Preis + 0); - Suchen Sie die Datensätze, bei denen der aktuelle Preis größer als der Preis ist. Wählen Sie * aus check_test, wobei aktueller Preis > Preis liegt. Wählen Sie * aus Check_Test, wobei (aktueller Preis + 0) > (Preis + 0); Die Ergebnisse sind wie folgt: Wir können sehen, dass in Ergebnis 1 15>8 die Bedingung nicht erfüllt, aber gefunden wird, während in Ergebnis 3 15>8 die Bedingung erfüllt, aber nicht gefunden wird. Warum ist das so? Denn der Vergleich von Zahlen vom Typ String beginnt bei der ersten Ziffer und vergleicht den entsprechenden Wert im Zeichencode. Wenn sie gleich sind, wird mit dem Vergleich der zweiten Ziffer fortgefahren. Wenn sie nicht gleich sind, wird der größere Wert verglichen . Die den numerischen Zeichen entsprechenden ASCII-Codewerte lauten wie folgt: Zum Beispiel:
Wir können dies mithilfe von Code mit JavaScript überprüfen: var aktueller_Preis = "12"; var Preis = "14"; console.log(aktueller_Preis < Preis); // wahr var aktueller_Preis = "15"; var Preis = "8"; console.log(aktueller_Preis < Preis); // wahr Daher sollten Zahlen, die möglicherweise verglichen werden müssen, nicht auf den Typ varchar gesetzt werden. Wenn sie jedoch auf den Typ varchar gesetzt wurden, konvertieren Sie sie zum Vergleichen in den numerischen Typ und fügen Sie dem Feld in SQL 0 hinzu. Wenn es sich um eine Programmiersprache handelt, muss die Konvertierung über die entsprechende Funktion erfolgen und kann nicht direkt durch Hinzufügen von 0 konvertiert werden, z. B. JavaScript: var aktueller_Preis = "12"; var Preis = "14"; console.log(parseInt(aktueller_Preis) < parseInt(Preis)); // wahr var aktueller_Preis = "15"; var Preis = "8"; console.log(parseInt(aktueller_Preis) < parseInt(Preis)); // falsch Hinweis: Der dem Zeichen entsprechende Dezimalwert hängt mit seiner Kodierung zusammen, der ASCII-Code ist jedoch kompatibel. Referenzlinks:Vergleich der Zahlen vom Typ String Vergleich von Zeichenfolgen vom Typ VARCHAR Vergleichen der Größe von Zahlen vom Typ varchar Dies ist das Ende dieses Artikels zum Vergleichen der Größe von varchar-Zahlen in einer MySQL-Datenbank. Weitere Informationen zum Vergleichen der Größe von MySQL varchar-Zahlen finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
>>: Über die 4 Zusatzfunktionen von Vuex
1. Spiegelbilder verschwinden in 50 und 93 [root@...
1. Optimieren Sie die Nginx-Parallelität [root@pr...
In diesem Artikel erkläre ich ausführlich, wie ma...
Vor ein paar Tagen habe ich mir ein Video von ein...
Einführung Basierend auf Docker-Containern und Do...
Vorwort Nehmen Sie Element Plus als Beispiel, um ...
Die einfachste Store-Anwendung in Vue ist die glo...
Dieser Artikel stellt vor, wie Sie durch Instanzi...
Wie wir alle wissen, haben die Webseiten, Websites...
Struktur Text, Kopf, HTML, Titel Text abbr, Akron...
In der Datenbank führen sowohl die Schlüsselwörte...
undefined Wenn wir in JavaScript feststellen möch...
Beschreibung der HTML-Meta-Viewport-Attribute Was...
Der Standardtyp varchar in MySQL ist case-insensi...
Beim Ändern der Zeitzone unter Linux ist es immer...