Heim > Datenbank > MySQL-Tutorial > Vergleich von Strings und Zahlen in MySQL (mit Beispielen)

Vergleich von Strings und Zahlen in MySQL (mit Beispielen)

不言
Freigeben: 2018-12-21 10:22:13
nach vorne
4087 Leute haben es durchsucht

Der Inhalt dieses Artikels befasst sich mit dem Vergleich von Zeichenfolgen und Zahlen in MySQL (mit Beispielen). Ich hoffe, dass er für Freunde hilfreich ist.

In Projekten verwenden wir oft die Fuzzy-Suche, aber wenn wir versehentlich Zeichenfolgentypen und numerische Typen vergleichen, entsprechen die Suchergebnisse manchmal nicht unseren Erwartungen. Beispiel:

Die XML-Anweisung in mybatis lautet wie folgt:

<if test="criteria != null and criteria.length()>0">
    AND (name like concat("%",#{criteria},"%") OR id = #{criteria})
</if>
Nach dem Login kopieren

Bei der Suche geben wir „884 test“ ein und das Ergebnis enthält den Datensatz mit der ID=884, aber den Namen stimmt nicht überein. Dies ist die Gefahr des MySQL-String- und Zahlenvergleichs: Während des Vergleichs wird der String-Typ in einen Integer-Typ konvertiert, beginnend mit dem ersten Buchstaben und endend, wenn ein nicht-numerischer Typ angetroffen wird.

Schauen wir uns ein paar Beispiele an:

SELECT "abc"=1;
结果:0
Nach dem Login kopieren
SELECT "1abc"=1;
结果:1
Nach dem Login kopieren
SELECT "abc"=0;
结果:1
Nach dem Login kopieren
SELECT "a2bc"=2;
结果:0
Nach dem Login kopieren

Wie löst man dieses Problem? Tatsächlich müssen Sie nur eine Typkonvertierung wie folgt durchführen:

SELECT "2bc"=cast(2 as CHAR);
结果:0
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonVergleich von Strings und Zahlen in MySQL (mit Beispielen). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:segmentfault.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage