ホームページ > データベース > mysql チュートリアル > MySQL で数値以外の文字がある場合でも数値を比較するにはどうすればよいですか?

MySQL で数値以外の文字がある場合でも数値を比較するにはどうすればよいですか?

DDD
リリース: 2024-12-06 14:40:17
オリジナル
424 人が閲覧しました

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

MySQL: 比較のために数値以外の文字を削除する

MySQL では、ユーザーが入力した特定の数値に基づいてレコードをフィルタリングできます。データベースに保存されている数値が、不要な非数値文字によって異なる場合でも同様です。これを実現するには、次のアプローチの使用を検討してください。

以下に示す STRIP_NON_DIGIT 関数は、入力文字列から数字以外の文字を削除し、数値を直接比較できるようにします。

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
$$
ログイン後にコピー

この関数を使用すると、 、次のようにレコードをフィルタリングできます:

SELECT * FROM foo WHERE STRIP_NON_DIGIT(bar) = '12345'
ログイン後にコピー

このクエリは、「bar」列に数値が含まれるレコードを取得します。データベースに保存されている値に「123zz4-5」などの数字以外の文字が含まれている場合でも、「12345」と一致します。

以上がMySQL で数値以外の文字がある場合でも数値を比較するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート