> 운영 및 유지보수 > 리눅스 운영 및 유지 관리 > MYSQL의 데이터 필터링을 위한 문자 함수의 영리한 사용

MYSQL의 데이터 필터링을 위한 문자 함수의 영리한 사용

小云云
풀어 주다: 2018-01-24 13:36:34
원래의
2083명이 탐색했습니다.

이 글은 주로 문자 기능을 사용하여 데이터를 필터링하는 것에 대한 MYSQL 질문을 소개합니다. 필요한 친구들이 참고하면 도움이 될 것입니다.

문제 설명:

구조:

test에는 각각
col1과 col2라는 두 개의 필드가 있으며, 둘 다 문자 필드입니다.
의 내용은 ,

로 구분된 세 개의 숫자입니다.

예를 들어 col1의 내용은 26, 59, 6입니다.
col2의 내용은 1502.5, 1690, 2276.77입니다.
일대일 대응이란 26의 값은 1502.5, 59의 값은 1690, 6을 의미합니다. 2276.77


에 해당합니다. 검색 조건:

59와 같은 ID를 선택하고 2000과 같은 숫자를 입력합니다.
그런 다음 col1에서 id=59인 레코드를 검색한 다음 2000보다 작은 col2를 검색합니다. is, 1690<2000

예:

다음 세 개의 레코드가 있는 경우 ID가 59이고 값이 2000보다 작은 레코드를 검색합니다.

26,59,6 | 1502.5,1690,2276.77
59,33,6 | 3502.1,1020,2276.77
22,8,59 | 1332.6,2900,1520.77

검색결과 이 3개 레코드의 ID가 59로 확인되었고, 두 번째 검색조건은 (즉, 숫자를 이용)로 판단했습니다. 비교할 ID 위치에 해당):

1690<2000
3502.1>2000
1520.77<2000


drop table test; 
create table test ( col1 varchar(100),col2 varchar(100)); 
insert test select 
&#39;26,59,6&#39;, &#39;1502.5,1690,2276.77&#39; union all select 
&#39;59,33,6&#39;, &#39;3502.1,1020,2276.77&#39; union all select 
&#39;22,8,59&#39;, &#39;1332.6,2900,1520.77&#39;; 
select col1,col2 
from (select *,find_in_set(&#39;59&#39;,col1) as rn from test) k 
where substring_index(concat(&#39;,&#39;,substring_index(col2,&#39;,&#39;,rn)),&#39;,&#39;,-1) 
 <&#39;2000&#39;;
로그인 후 복사

+---------+--------- ------------+

| 열1 |

+---- ---+---- ----+

| 1502.5,1690,2276.77 |

| 1332.6,2900,1520.77 |

+---------+-- ------+

관련 권장 사항:

php는 문자열 함수 str_ireplace()

php에서 일부 문자를 대체하고 문자 함수 chr( ) 지정된 ASCII 값에서

MySQL 데이터베이스의 문자 함수에 대한 자세한 설명

위 내용은 MYSQL의 데이터 필터링을 위한 문자 함수의 영리한 사용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿