데이터 베이스 MySQL 튜토리얼 sql语句中like的用法详细解析_MySQL

sql语句中like的用法详细解析_MySQL

Jun 01, 2016 pm 01:25 PM
SQL 문 where

bitsCN.com

在SQL结构化查询语言中,LIKE语句有着至关重要的作用。
LIKE语句的语法格式是:select * from 表名 where 字段名 like 对应值(子串),它主要是针对字符型字段的,它的作用是在一个字符型字段列中检索包含对应子串的。

假设有一个数据库中有个表table1,在table1中有两个字段,分别是name和sex二者全是字符型数据。现在我们要在姓名字段中查询以“张”字开头的记录,语句如下:
select * from table1 where name like "张*"
如果要查询以“张”结尾的记录,则语句如下:
select * from table1 where name like "*张"
这里用到了通配符“*”,可以说,like语句是和通配符分不开的。下面我们就详细介绍一下通配符。

匹配类型  
 模式
 举例 及 代表值
 说明

多个字符
 *
 c*c代表cc,cBc,cbc,cabdfec等
 它同于DOS命令中的通配符,代表多个字符。

多个字符
 %
 %c%代表agdcagd等
 这种方法在很多程序中要用到,主要是查询包含子串的。

特殊字符
 [*]
 a[*]a代表a*a
 代替*

单字符
 ?
 b?b代表brb,bFb等
 同于DOS命令中的?通配符,代表单个字符

单数字
 #
 k#k代表k1k,k8k,k0k
 大致同上,不同的是代只能代表单个数字。

字符范围
 - [a-z]代表a到z的26个字母中任意一个 指定一个范围中任意一个
续上
排除 [!字符] [!a-z]代表9,0,%,*等 它只代表单个字符
数字排除 [!数字] [!0-9]代表A,b,C,d等 同上
组合类型 字符[范围类型]字符 cc[!a-d]#代表ccF#等 可以和其它几种方式组合使用

假设表table1中有以下记录:
    name                          sex
                张小明              男
    李明天       男
    李a天       女
    王5五       男
    王清五           男

下面我们来举例说明一下:
例1,查询name字段中包含有“明”字的。
      select * from table1 where name like '%明%'
例2,查询name字段中以“李”字开头。
      select * from table1 where name like '李*'
例3,查询name字段中含有数字的。
      select * from table1 where name like '%[0-9]%'
例4,查询name字段中含有小写字母的。
      select * from table1 where name like '%[a-z]%'
例5,查询name字段中不含有数字的。
      select * from table1 where name like '%[!0-9]%'

以上例子能列出什么值来显而易见。但在这里,我们着重要说明的是通配符“*”与“%”的区别。
很多朋友会问,为什么我在以上查询时有个别的表示所有字符的时候用"%"而不用“*”?
先看看下面的例子能分别出现什么结果:
  select * from table1 where name like *明*
    select * from table1 where name like %明%

大家会看到,前一条语句列出来的是所有的记录,而后一条记录列出来的是name字段中含有“明”的记录,
所以说,当我们作字符型字段包含一个子串的查询时最好采用“%”而不用“*”,用“*”的时候只在开头或者只在结尾时,而不能两端全由“*”代替任意字符的情况下。

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

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Excel에서 iif 함수를 사용하는 방법 Excel에서 iif 함수를 사용하는 방법 Mar 20, 2024 pm 06:10 PM

Excel에서 iif 함수를 사용하는 방법

Oracle 데이터베이스 로그를 쿼리하는 방법 Oracle 데이터베이스 로그를 쿼리하는 방법 Apr 07, 2024 pm 04:51 PM

Oracle 데이터베이스 로그를 쿼리하는 방법

sql 문을 사용하여 mysql 데이터베이스의 저장 구조를 쿼리하는 방법 sql 문을 사용하여 mysql 데이터베이스의 저장 구조를 쿼리하는 방법 Apr 14, 2024 pm 07:45 PM

sql 문을 사용하여 mysql 데이터베이스의 저장 구조를 쿼리하는 방법

navicat에서 쿼리된 데이터를 내보내는 방법 navicat에서 쿼리된 데이터를 내보내는 방법 Apr 24, 2024 am 04:15 AM

navicat에서 쿼리된 데이터를 내보내는 방법

mysql 데이터베이스 초기화 실패를 해결하는 방법 mysql 데이터베이스 초기화 실패를 해결하는 방법 Apr 14, 2024 pm 07:12 PM

mysql 데이터베이스 초기화 실패를 해결하는 방법

mysql 데이터베이스에서 sql 문을 실행하는 방법 mysql 데이터베이스에서 sql 문을 실행하는 방법 Apr 14, 2024 pm 07:48 PM

mysql 데이터베이스에서 sql 문을 실행하는 방법

MySQL 트랜잭션 처리: 자동 제출과 수동 제출의 차이점 MySQL 트랜잭션 처리: 자동 제출과 수동 제출의 차이점 Mar 16, 2024 am 11:33 AM

MySQL 트랜잭션 처리: 자동 제출과 수동 제출의 차이점

MySQL 뷰의 장점과 한계 MySQL 뷰의 장점과 한계 Mar 15, 2024 pm 09:09 PM

MySQL 뷰의 장점과 한계

See all articles