집 >데이터 베이스 >MySQL 튜토리얼 >MySQL에서 숫자 데이터와 숫자가 아닌 문자를 효율적으로 비교하는 방법은 무엇입니까?
비교를 용이하게 하기 위해 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' 테이블의 레코드를 반환합니다. ' 숫자가 아닌 문자가 제거된 필드는 다음에서 입력한 '12345'와 일치합니다. user.
이점
이 함수는 MySQL 데이터베이스에서 숫자 값과 숫자가 아닌 문자를 비교하는 문제에 대한 간단하고 효율적인 솔루션을 제공합니다. 복잡한 정규식이나 PHP 함수가 필요 없으며 구현이 쉽습니다.
위 내용은 MySQL에서 숫자 데이터와 숫자가 아닌 문자를 효율적으로 비교하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!