在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';
此查詢將從「foo」表傳回記錄,其中「bar」中的值' 去除非數字字元的欄位與輸入的'12345' 相符user.
好處此函數為MySQL資料庫中比較數值與非數字字元的問題提供了一個簡單有效的解決方案。它不需要複雜的正規表示式或 PHP 函數,而且易於實作。以上是如何在MySQL中高效比較數字資料與非數字字元?的詳細內容。更多資訊請關注PHP中文網其他相關文章!