比較を容易にするために MySQL の数字以外の文字を削除する
ユーザーからの数値入力に基づいて一致するレコードを見つけるには、以下を考慮する必要があります。データベース値内の数字以外の文字。この記事では、これらの非数値文字を取り除き、正確な比較を容易にする MySQL 関数について説明します。
問題ステートメント
数値以外の文字が散在する可能性があるフィールドを含むテーブルがあるとします。 -数値文字の場合、タスクは、によって入力された特定の数値入力に一致するレコードを検索することです。 user.
MySQL 関数: STRIP_NON_DIGIT
この問題に対処するには、STRIP_NON_DIGIT という MySQL 関数を作成できます:
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 $$
働く例
STRIP_NON_DIGIT 関数を使用するには、次のような SQL クエリを実行します。
SELECT * FROM foo WHERE STRIP_NON_DIGIT(bar) = '12345';
このクエリは、'foo' テーブルからレコードを返します。 ' 数字以外の文字が取り除かれたフィールドは、 user.
利点
この関数は、MySQL データベース内の数値と数値以外の文字を比較する問題に対する直接的かつ効率的な解決策を提供します。複雑な正規表現や PHP 関数の必要がなく、実装が簡単です。
以上がMySQL で数値データを数値以外の文字と効率的に比較するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。