>  기사  >  데이터 베이스  >  mysql에서 특정 문자열이 포함된 데이터를 쿼리하는 방법

mysql에서 특정 문자열이 포함된 데이터를 쿼리하는 방법

青灯夜游
青灯夜游원래의
2022-01-05 16:23:4125082검색

mysql에서는 "SELECT" 문과 LIKE 키워드를 사용하여 지정된 문자열이 포함된 데이터를 쿼리할 수 있습니다. LIKE 키워드는 주로 일치하는 필드에서 지정된 내용을 검색하는 데 사용됩니다. "SELECT 필드 이름 FROM 테이블. name WHERE 필드 이름 [NOT] LIKE 'string';".

mysql에서 특정 문자열이 포함된 데이터를 쿼리하는 방법

이 튜토리얼의 운영 환경: 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”的学生姓名。

带有“_

"%"는 MySQL A에서 가장 일반적입니다. 일반적으로 사용되는 와일드카드 문자는 임의의 길이의 문자열을 나타낼 수 있으며 문자열의 길이는 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 '____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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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