mysql에서는 정규식 "[^0-9.]"와 함께 REGEXP 연산자를 사용하여 데이터가 숫자인지 여부를 확인할 수 있습니다. 구문은 "field REGEXP '[^0-9.]'"입니다. 이 명령문의 결과가 "1"이면 숫자가 아닌 데이터를 필터링할 수 있습니다. 이 명령문의 결과가 "0"이면 값이 숫자인 데이터를 필터링할 수 있습니다.
이 튜토리얼의 운영 환경: windows10 시스템, mysql8.0.22 버전, Dell G3 컴퓨터.
대부분의 숫자는 int 또는 bigint로 저장되지만 일부 필드는 문자열을 사용하여 숫자를 저장합니다. 따라서 문자열 형식이 모두 숫자인지 확인해야 할 때 이 문제에 직면하게 됩니다. .
그럼 어떻게 판단할까요?
Method
mysql의 REGEXP 연산자를 사용합니다
{String} REGEXP '[^0-9.]'
앞의 문자열이 우리가 판단해야 할 문자열이고, 다음의 문자열은 mysql의 정규 표현식으로, 숫자나 소수점이 아닌 문자를 일치시킨다는 뜻입니다.
문자열에 0-9 또는 소수점이 아닌 숫자가 포함되어 있으면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
Usage
select ('123a' REGEXP '[^0-9.]');
--'123a'에는 문자 'a'가 포함됩니다. mysql에서 true 상수의 출력 결과는 1입니다. false의 출력은 0
select * from tablename where (name REGEXP '[^0-9.]') = 1
이름이 모두 숫자인 레코드를 쿼리합니다
참고: 문자열에 공백이 있으면 정규 표현식이 일치하여 1이 반환됩니다. 양쪽 끝의 공백을 제거하려면 심사하려는 문자열에 대해 Trim() 함수를 사용해야 합니다.
#속도 열이 숫자가 아닌 데이터 쿼리
select * from standard_csbi_service_tree_1d_full where (‘2134’ REGEXP ‘[^0-9.]’)=1;
#속도 열이 숫자인 데이터 쿼리
select * from standard_csbi_service_tree_1d_full where (speed REGEXP ‘[^0-9.]’)=0;
추천 학습: mysql 동영상 튜토리얼
위 내용은 mysql이 숫자인지 확인하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!