SQL 퍼 지 조회

4641 단어 모호 조회
일반 모호 검색 어 는 다음 과 같다.

SELECT FROM WHERE Like
그 중에서 조건 에 대해 SQL 은 네 가지 일치 모드 를 제공 합 니 다.
1,%:임의의 0 개 이상 의 문 자 를 나타 낸다.임의의 형식 과 길이 의 문자 와 일치 할 수 있 습 니 다.어떤 경우 중국어 라면 두 개의 백분율(%%)로 표시 하 십시오.
예 를 들 어 SELECT*FROM[user]WHERE uname LIKE'%3%'
u이름 은'장 삼','장 고양이 삼','삼발이 고양이','당 삼장'등'삼'이라는 기록 을 모두 찾 아 냈 다.
그리고 u 를 찾 아야 한다 면name 에"3"과"고양이"의 기록 이 있 습 니 다.and 조건 SELECT*FROM[user]WHERE u 를 사용 하 세 요.name LIKE'%3%'AND U이름 LIKE'%고양이%'
SELECT*FROM[user]WHERE U 사용 시name LIKE'%3%고양이%'는'삼각 고양이'를 검색 할 수 있 지만,조건 에 맞 는'장 고양이 3'은 검색 할 수 없습니다.
2,_ : 임의의 단일 문 자 를 표시 합 니 다.하나의 임의의 문자 와 일치 합 니 다.표현 식 의 문자 길 이 를 제한 하 는 데 자주 사 용 됩 니 다.
예 를 들 어 SELECT*FROM[user]WHERE uname LIKE '_3 ''당 삼장'이렇게 uname 은 세 글자 이 고 중간 한 글 자 는'3'입 니 다.
예 를 들 어 SELECT*FROM[user]WHERE U이름 LIKE'3';'삼각 고양이'라 는 이름 만 찾 고 첫 번 째 글 자 는'3'입 니 다.
3,[]:괄호 안에 열 거 된 문자 중 하 나 를 나타 낸다(정규 표현 식 과 유사).문자,문자열,범 위 를 지정 하고 일치 하 는 대상 을 하나 로 요구 합 니 다.
예 를 들 어 SELECT*FROM[user]WHERE uname LIKE'[장 이 왕]3'은'장 삼','이 삼','왕 삼'('장 이 왕 삼'이 아 닌)을 찾 아 낼 것 이다.
예 를 들 어[]안에 일련의 문자(01234,abcde 등)가 있 으 면'0-4','a-e'SELECT*FROM[user]WHERE uname LIKE'늙 음[1-9]'은'늙 음 1','늙 음 2','늙 음 9'를 찾 아 낼 것 이다.
4,[^]:괄호 안에 없 는 단일 문 자 를 나타 낸다.그 값 은[]와 같 지만,일치 하 는 대상 을 지정 한 문자 이외 의 모든 문자 로 요구 합 니 다.
예 를 들 어 SELECT*FROM[user]WHERE uname LIKE'[^장 이 왕]3'은'장','이','왕'이 아 닌'조 삼','손 삼'등 을 찾 아 낼 것 이다.
SELECT * FROM [user] WHERE u_이름 LIKE'old[^1-4]';'노 1'에서'노 4'까지 제외 하고'노 5','노 6',...
5,검색 내용 이 어댑터 를 포함 할 때
어댑터 때문에 특수 문자'%','','['를 조회 합 니 다.의 문 구 는 정상적으로 실 현 될 수 없 으 며,특수 문 자 를'[]'로 묶 으 면 정상적으로 조회 할 수 있다.이에 따라 우 리 는 다음 과 같은 함 수 를 쓴다.

function sqlencode(str)
str=replace(str,"[","[[]") '
str=replace(str,"_","[_]")
str=replace(str,"%","[%]")
sqlencode=str
end function
검색 하기 전에 검색 대기 문자열 을 이 함수 로 처리 하면 됩 니 다.또한 웹 페이지 에 데이터 베 이 스 를 연결 하여 이러한 검색 어 를 사용 할 때 주의해 야 합 니 다.
예 를 들 어 Select*FROM user Where name LIKE'老[^1-4]';위 에<>늙 음[^1-4]<>은 작은 따옴표 가 있어 야 하 니 잊 지 마 세 요.자주 잊 어 요!
access
최근 웹 프로그램 을 쓸 때 Access 의 모호 한 조 회 를 사 용 했 습 니 다.Acces 에 코드 를 쓰 면 기록 을 찾 을 수 없 었 습 니 다.나중에 야 Acess 와 SqlServer 의 모호 한 조 회 는 특별한 조건 이 있 었 습 니 다.표 A 의 Name 필드 에'B'를 포함 한 Access 에 기 록 된 코드 를 찾 습 니 다.
1 Select*from a where name like'*b*'Sql Server 조회 분석 기의 코드 Select*from a where name like'%b%'이 때 Access 에서 관련 기록 을 찾 을 수 있 지만'*'를'%'로 만 들 면 찾 을 수 없습니다.Access 의 모호 한 조회 가'?','*'이기 때 문 입 니 다.Sql server 와 달리 이상 은 데이터베이스 에 있 는 코드 일 뿐 입 니 다.프로그램 에 쓰 려 면'*'를 사용 할 수 없습니다.'%'프로그램 을 사용 해 야 합 니 다.strSql='select*from a where name like'%b%'를 사용 해 야 합 니 다.그래서 저 와 같은 친구 가 데이터베이스 에서 코드 테스트 를 먼저 하 는 것 을 좋아한다 면 주의해 야 합 니 다!!
SQL 모호 검색,like 비교 키 워드 를 사용 하고 SQL 의 어댑터 를 추가 합 니 다.다음 을 참고 하 십시오.1.LIKE'Mc%'는 알파벳 Mc 로 시작 하 는 모든 문자열(예 를 들 어 McBadden)을 검색 합 니 다.2.LIKE'%inger'는 알파벳 inger 로 끝 나 는 모든 문자열(예 를 들 어 Ringer,Stringer)을 검색 합 니 다.3.LIKE'%en%'는 알파벳 en 을 포함 하 는 모든 문자열(예 를 들 어 Bennet,Green,McBadden)을 검색 합 니 다.4、LIKE'_heryl'은 알파벳 heryl 로 끝 나 는 여섯 글자 의 이름(예 를 들 어 Cheryl,Sheryl)을 검색 합 니 다.5.LIKE'[CK]ars[eo]n 은 다음 문자열 을 검색 합 니 다:Carsen,Karsen,Carson,Karson(예 를 들 어 Carson).6.LIKE'[M-Z]inger'는 문자열 inger 로 끝나 고 M 에서 Z 까지 의 모든 알파벳 으로 시작 하 는 모든 이름(예 를 들 어 Ringer)을 검색 합 니 다.7.LIKE'M[^c]%'는 알파벳 M 으로 시작 하고 두 번 째 알파벳 은 c 의 모든 이름(예 를 들 어 MacFeather)이 아 닙 니 다.다음 검색 문자열 은 제 가 예전 에 쓴 것 입 니 다.변수 에 따라 zipcodekey 우편 번호 표 zipcode 에서 대응 하 는 데 이 터 를 조회 합 니 다.이 문장 은 판단 변수 zipcode 입 니 다.key 는 숫자 가 아 닐 때 검색 어 입 니 다.%로 임의의 길이 의 문자열 과 일치 합 니 다.표 의 주소,시,성 3 열 에서 키 워드 를 포함 하 는 모든 데이터 항목 을 조회 하고 성,시,주소 에 따라 정렬 합 니 다.이 예 는 비교적 간단 해서 네가 방법 을 이해 하기 만 하면 더욱 복잡 한 조회 문 구 를 쓸 수 있다.
sql = "select * from zipcode where (address like'%" & zipcode_key & "%') or (city like'%" & zipcode_key & "%') or (province like'%" & zipcode_key & "%') order by province,city,address
저장 과정 에서 모호 한 조 회 를 사용 하 는 예:SELECT*FROM Questions where QTitle like'%['+@KeyWord+']%'and IsFinish=@IsFinsih
문장에서 쌍 을 이 루 는 네모 난 괄호 는 격식 을 쓰 는 관건 이다.

좋은 웹페이지 즐겨찾기