mysql에서는 "SELECT" 문과 LIKE 키워드를 사용하여 지정된 문자열이 포함된 데이터를 쿼리할 수 있습니다. LIKE 키워드는 주로 일치하는 필드에서 지정된 내용을 검색하는 데 사용됩니다. "SELECT 필드 이름 FROM 테이블. name WHERE 필드 이름 [NOT] LIKE 'string';".
이 튜토리얼의 운영 환경: windows7 시스템, mysql8 버전, Dell G3 컴퓨터.
mysql에서는 "SELECT" 문과 LIKE 키워드를 사용하여 지정된 문자열이 포함된 데이터를 쿼리할 수 있습니다.
LIKE 키워드는 주로 일치하는 필드에서 지정된 콘텐츠를 검색하는 데 사용됩니다. 구문 형식은 다음과 같습니다.
[NOT] LIKE '字符串'
그 중:
NOT: 선택적 매개변수, 필드의 내용이 지정된 문자열과 일치하지 않을 때 조건이 충족됩니다.
String: 일치시킬 문자열을 지정합니다. "문자열"은 완전한 문자열이거나 와일드카드 문자를 포함할 수 있습니다.
LIKE 키워드는 퍼센트 기호 "%"와 밑줄 "_" 와일드카드 문자를 지원합니다.
와일드카드는 퍼지 쿼리에 주로 사용되는 특수 문입니다. 실제 문자를 모르거나 전체 이름을 입력하기에는 너무 게으른 경우 와일드카드를 사용하여 하나 이상의 실제 문자를 바꿀 수 있습니다.
"SELECT" 문 + LIKE 키워드의 사용 예
"%
" 와일드카드를 사용한 쿼리 %
”通配符的查询
“%”是 MySQL 中最常用的通配符,它能代表任何长度的字符串,字符串的长度可以为 0。例如,a%b表示以字母 a 开头,以字母 b 结尾的任意长度的字符串。该字符串可以代表 ab、acb、accb、accrb 等字符串。
例 1
在 tb_students_info 表中,查找所有以字母“T”开头的学生姓名,SQL 语句和运行结果如下。
mysql> SELECT name FROM tb_students_info -> WHERE name LIKE 'T%'; +--------+ | name | +--------+ | Thomas | | Tom | +--------+ 2 rows in set (0.12 sec)
可以看到,查询结果中只返回了以字母“T”开头的学生姓名。
注意:匹配的字符串必须加单引号或双引号。
NOT LIKE
表示字符串不匹配时满足条件。
例 2
在 tb_students_info 表中,查找所有不以字母“T”开头的学生姓名,SQL 语句和运行结果如下。
mysql> SELECT NAME FROM tb_students_info -> WHERE NAME NOT LIKE 'T%'; +-------+ | NAME | +-------+ | Dany | | Green | | Henry | | Jane | | Jim | | John | | Lily | | Susan | +-------+ 8 rows in set (0.00 sec)
可以看到,查询结果中返回了不以字母“T”开头的学生姓名。
例 3
在 tb_students_info 表中,查找所有包含字母“e”的学生姓名,SQL 语句和运行结果如下。
mysql> SELECT name FROM tb_students_info -> WHERE name LIKE '%e%'; +-------+ | name | +-------+ | Green | | Henry | | Jane | +-------+ 3 rows in set (0.00 sec)
可以看到,查询结果中返回了所有包含字母“e”的学生姓名。
带有“_
예제 1
tb_students_info 테이블에서 "T"로 시작하는 학생 이름을 모두 찾습니다. SQL 문과 실행 결과는 다음과 같습니다.mysql> SELECT name FROM tb_students_info -> WHERE name LIKE '____y'; +-------+ | name | +-------+ | Henry | +-------+ 1 row in set (0.00 sec)쿼리 결과에 "T"로 시작하는 학생 이름만 반환되는 것을 볼 수 있습니다.
참고: 일치하는 문자열은 작은따옴표나 큰따옴표로 묶어야 합니다. NOT LIKE
는 문자열이 일치하지 않을 때 조건이 충족된다는 의미입니다.
예제 2
tb_students_info 테이블에서 "T"로 시작하지 않는 학생 이름을 모두 찾아보세요. SQL 문과 실행 결과는 다음과 같습니다.
mysql> SELECT name FROM tb_students_info WHERE name LIKE 't%'; +--------+ | name | +--------+ | Thomas | | Tom | +--------+ 2 rows in set (0.00 sec) mysql> SELECT name FROM tb_students_info WHERE name LIKE BINARY 't%'; Empty set (0.01 sec)쿼리 결과에 문자 "T"로 시작하지 않는 학생 이름이 반환된 것을 볼 수 있습니다.
예제 3
tb_students_info 테이블에서 "e"가 포함된 학생 이름을 모두 찾습니다. SQL 문과 실행 결과는 다음과 같습니다. rrreee
쿼리 결과에 문자 "e"가 포함된 모든 학생 이름이 반환되는 것을 볼 수 있습니다. 🎜🎜🎜🎜"🎜🎜_
" 와일드카드를 사용한 쿼리 🎜🎜🎜🎜 "_"는 단일 문자만 나타낼 수 있으며 문자 길이는 0이 될 수 없습니다. 예를 들어 a_b는 acb, adb, aub 등과 같은 문자열을 나타낼 수 있습니다. 🎜🎜🎜예제 4🎜🎜🎜tb_students_info 테이블에서 "y"로 끝나고 "y" 앞에 4글자만 있는 학생 이름을 모두 찾습니다. SQL 문과 실행 결과는 다음과 같습니다. 🎜rrreee🎜🎜🎜LIKE는 대소문자를 구분합니다🎜🎜🎜🎜기본적으로 LIKE 키워드는 문자 일치 시 대소문자를 구분하지 않습니다. 대소문자 구분이 필요한 경우 BINARY 키워드를 추가할 수 있습니다. 🎜🎜🎜예제 5🎜🎜🎜tb_students_info 테이블에서 "t"로 시작하는 학생 이름을 모두 찾습니다. 대/소문자를 구분하지 않는 SQL 문과 실행 결과는 다음과 같습니다. 🎜rrreee🎜결과에서 볼 수 있듯이 대소문자 구분 후 'Tom', 'Thomas'와 같은 레코드는 일치하지 않습니다. 🎜🎜【관련 추천: 🎜mysql 비디오 튜토리얼🎜】🎜위 내용은 mysql에서 특정 문자열이 포함된 데이터를 쿼리하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!