首頁 >資料庫 >mysql教程 >如何在MySQL中高效比較數字資料與非數字字元?

如何在MySQL中高效比較數字資料與非數字字元?

DDD
DDD原創
2024-12-09 15:03:14775瀏覽

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

在MySQL 中剝離非數字字元以方便比較

要根據使用者輸入的數字查找匹配記錄,有必要考慮資料庫值中的非數字字元。本文探討了一個 MySQL 函數來剝離這些非數字字元並促進準確比較。

問題陳述

給定一個表,其中包含可能散佈有非數字的字段-數字字符,任務是查找與輸入的特定數字匹配的記錄

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

在職的範例

在職的範例
SELECT * FROM foo WHERE STRIP_NON_DIGIT(bar) = '12345';
要使用STRIP_NON_DIGIT 函數,請執行如下SQL 查詢:

此查詢將從「foo」表傳回記錄,其中「bar」中的值' 去除非數字字元的欄位與輸入的'12345' 相符user.

好處

此函數為MySQL資料庫中比較數值與非數字字元的問題提供了一個簡單有效的解決方案。它不需要複雜的正規表示式或 PHP 函數,而且易於實作。

以上是如何在MySQL中高效比較數字資料與非數字字元?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn