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!