Heim >Datenbank >MySQL-Tutorial >Wie vergleiche ich numerische Werte in MySQL trotz nicht numerischer Zeichen?

Wie vergleiche ich numerische Werte in MySQL trotz nicht numerischer Zeichen?

DDD
DDDOriginal
2024-12-06 14:40:17426Durchsuche

How to Compare Numeric Values in MySQL Despite Non-Numeric Characters?

MySQL: Nicht-numerische Zeichen zum Vergleich entfernen

In MySQL können Sie Datensätze basierend auf einer bestimmten Zahl filtern, die ein Benutzer eingibt. auch wenn der gespeicherte Zahlenwert in der Datenbank aufgrund unerwünschter nicht numerischer Zeichen abweicht. Um dies zu erreichen, sollten Sie den folgenden Ansatz in Betracht ziehen:

Die unten bereitgestellte Funktion STRIP_NON_DIGIT entfernt nichtstellige Zeichen aus einer Eingabezeichenfolge und ermöglicht so einen einfachen Vergleich numerischer Werte:

DROP FUNCTION IF EXISTS STRIP_NON_DIGIT;
DELIMITER $$
CREATE FUNCTION STRIP_NON_DIGIT(input VARCHAR(255))
   RETURNS VARCHAR(255)
BEGIN
   DECLARE output   VARCHAR(255) DEFAULT '';
   DECLARE iterator INT          DEFAULT 1;
   WHILE iterator < (LENGTH(input) + 1) DO
      IF SUBSTRING(input, iterator, 1) IN ( '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' ) THEN
         SET output = CONCAT(output, SUBSTRING(input, iterator, 1));
      END IF;
      SET iterator = iterator + 1;
   END WHILE;
   RETURN output;
END
$$

Mit dieser Funktion können Sie Datensätze wie folgt filtern:

SELECT * FROM foo WHERE STRIP_NON_DIGIT(bar) = '12345'

Diese Abfrage ruft Datensätze ab, bei denen der numerische Wert in der Spalte „Balken“ übereinstimmt „12345“, auch wenn der in der Datenbank gespeicherte Wert nicht numerische Zeichen wie „123zz4-5“ enthält.

Das obige ist der detaillierte Inhalt vonWie vergleiche ich numerische Werte in MySQL trotz nicht numerischer Zeichen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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