MySQL的模糊查询
Posted WZ_BeiHang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL的模糊查询相关的知识,希望对你有一定的参考价值。
模糊查询的本质为:配合where和比较运算符,返回的都是一个布尔值
运算符 | 语法 | 描述 |
---|---|---|
IS NULL | a is null | 如果操作符为NULL,结果为真 |
IS NOT NULL | a is not null | 如果操作符不为NULL,结果为真 |
BETWEEN | a between b and c | 若a在b和c之间,则结果为真 |
LIKE | a like b | SQL匹配,如果a匹配b,则结果为真 |
IN | a in (a1,a2,a3) | 假设a为a1,或者a2...中的其中某一个值,结果为真 |
2. Like结合 % _
1、%:代表0到任意个字符。比如,有三个姓刘的,两个姓王的,想查到所有姓刘的,不管他名字是三个字还是两
个字,就可以用\'刘%\'查。
-- 想查全部姓刘的
SELECT `StudentNo`,`StudentName` FROM `student` WHERE `StudentName` LIKE \'刘%\'
效果:
2、_:代表一个字符。比如,有三个姓刘的,一个叫刘红,一个叫刘二红,一个叫刘三红。想查姓刘的2个字的名字,就可以用\'刘\'查;想查姓刘的3个字的名字,就可以用\'刘\'查;
-- 想查两个字姓周的
SELECT `StudentNo`,`StudentName` FROM `student` WHERE `StudentName` LIKE \'周_\'
效果:
-- 想查三个字姓周的
SELECT `StudentNo`,`StudentName` FROM `student` WHERE `StudentName` LIKE \'周__\'
3. in
与like关键字可以匹配%和_进行模糊查询不同;in是精确匹配,不可使用%和。
1、查家庭地址为北京海淀区、沈阳和平区的学生的信息。
SELECT * FROM `student` WHERE `Address` IN (\'北京海淀区\',\'沈阳和平区\')
效果:
2、查学号为1001、1002、1003的三个人信息。
SELECT * FROM `student` WHERE `StudentNo` IN (1001,1002,1003)
4. is null
4.1 查询空信息(NULL),注意:NULL和空格打出来的空不一样!(建议使用4.2的方法)
SELECT * FROM `student` WHERE `Address` IS NULL
效果:
4.2 查询空信息(NULL),最好使用:同时判断NULL和空格的下面语法:
SELECT * FROM `student` WHERE `Address` IS NULL OR `Address`=\'\'
5. is not null
SELECT * FROM `student` WHERE `BronDate` IS NOT NULL AND `BronDate`<>\'\'
以上是关于MySQL的模糊查询的主要内容,如果未能解决你的问题,请参考以下文章