>데이터 베이스 >MySQL 튜토리얼 >MySQL 텍스트 필드에서 연속 숫자를 추출하고 추가 기준을 적용하는 방법은 무엇입니까?

MySQL 텍스트 필드에서 연속 숫자를 추출하고 추가 기준을 적용하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-18 13:15:19629검색

How to Extract Consecutive Digits from a MySQL Text Field and Apply Additional Criteria?

MySQL 텍스트 필드에서 연속 숫자 추출

MySQL에서 다음 쿼리는 2자리 숫자가 포함된 텍스트 필드를 감지할 수 있습니다.

SELECT `id`, `originaltext` FROM `source` WHERE `originaltext` regexp '[0-9][0-9]'

그러나 이러한 숫자를 별도의 필드로 조작하려면 추가 처리가 필요합니다. 다음은 두 가지 잠재적인 솔루션입니다.

LIB_MYSQLUDF_PREG 사용

LIB_MYSQLUDF_PREG는 정규식 기능을 향상시키는 MySQL 라이브러리입니다. 문자열에서 일치 항목을 추출할 수 있는 PREG_CAPTURE와 같은 기능이 도입되었습니다.

이 라이브러리를 사용하려면 MySQL 서버에 설치해야 합니다. 설치한 후에는 다음 쿼리를 사용하여 연속 숫자를 추출할 수 있습니다.

SELECT `id`, PREG_CAPTURE('[0-9][0-9]', `originaltext`) AS `digits` FROM `source`

사용자 정의 MySQL 함수 사용

또는 다음과 같은 사용자 정의 MySQL 함수를 정의할 수 있습니다. 추출을 수행합니다. 예를 들어, 다음 함수는 일치하는 첫 번째 가장 긴 숫자 시퀀스를 추출합니다.

CREATE FUNCTION REGEXP_EXTRACT(string TEXT, exp TEXT)
RETURNS TEXT
DETERMINISTIC
BEGIN
  DECLARE s INT DEFAULT 1;
  ...
  -- Implementation to extract the matching digits
  ...
END

이 함수를 사용하려면 다음과 같이 호출하세요.

SELECT `id`, REGEXP_EXTRACT(`originaltext`, '[0-9][0-9]') AS `digits` FROM `source`

추가 기준( 숫자 > 20)

숫자가 되어야 하는 기준을 추가하려면 20보다 크면 두 쿼리 중 하나의 WHERE 절에 다음 조건을 추가하면 됩니다.

WHERE `digits` > 20

위 내용은 MySQL 텍스트 필드에서 연속 숫자를 추출하고 추가 기준을 적용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.