Heim >Datenbank >MySQL-Tutorial >Wie vergleiche ich numerische Daten effizient mit nicht-numerischen Zeichen in MySQL?

Wie vergleiche ich numerische Daten effizient mit nicht-numerischen Zeichen in MySQL?

DDD
DDDOriginal
2024-12-09 15:03:14771Durchsuche

How to Efficiently Compare Numeric Data with Non-Numeric Characters in MySQL?

Entfernen nicht numerischer Zeichen in MySQL, um Vergleiche zu erleichtern

Um passende Datensätze basierend auf numerischen Eingaben von Benutzern zu finden, ist eine Berücksichtigung erforderlich nicht numerische Zeichen in Datenbankwerten. In diesem Artikel wird eine MySQL-Funktion untersucht, um diese nicht numerischen Zeichen zu entfernen und genaue Vergleiche zu ermöglichen.

Problemstellung

Gegeben sei eine Tabelle mit einem Feld, das Zahlen enthält, die möglicherweise mit nicht durchsetzt sind -numerische Zeichen, die Aufgabe besteht darin, Datensätze zu finden, die einer bestimmten vom Benutzer eingegebenen numerischen Eingabe entsprechen.

MySQL-Funktion: STRIP_NON_DIGIT

Um dieses Problem zu lösen, kann eine MySQL-Funktion namens STRIP_NON_DIGIT erstellt werden:

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
$$

Arbeitsbeispiel

Zur Verwendung der STRIP_NON_DIGIT-Funktion, führt SQL-Abfragen wie die aus Folgendes:

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

Diese Abfrage gibt Datensätze aus der Tabelle „foo“ zurück, bei denen der Wert im Feld „bar“, ohne nicht numerische Zeichen, mit „12345“ übereinstimmt, das vom Benutzer eingegeben wurde.

Vorteile

Diese Funktion bietet eine einfache und effiziente Lösung für das Problem des Vergleichs numerischer Werte mit nicht numerische Zeichen in MySQL-Datenbanken. Es macht komplexe reguläre Ausdrücke oder PHP-Funktionen überflüssig und ist einfach zu implementieren.

Das obige ist der detaillierte Inhalt vonWie vergleiche ich numerische Daten effizient mit nicht-numerischen Zeichen in MySQL?. 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