MySQL基础_模糊查询—between and in is null <=>(安全等于)等关建字

MySQL基础查询详解
本文深入讲解MySQL中的基础查询技巧,包括区间查询、in关键字、isnull关键字及安全等于的使用方法,通过具体案例帮助读者理解如何高效进行数据筛选。

eg:

select * from table where 字段 between 1 and 100;

注意:1.使用between and 可以提高语句的简洁度

2.包含临界值 >= <= 1 100 在区间

3.查询范围只能从小到大 不能倒序

MySQL基础_模糊查询—in关键字

/*
含义:判断某字段的值是否属于in列表中的某一项
特点:
①使用in提高语句简洁度
②in列表的值类型必须一致或兼容
③in列表中不支持通配符 in相当于 =

*/
#案例:查询员工的工种编号是 IT_PROG、AD_VP、AD_PRES中的一个员工名和工种编号

SELECT
last_name,
job_id
FROM
employees
WHERE
job_id = ‘IT_PROT’ OR job_id = ‘AD_VP’ OR JOB_ID =‘AD_PRES’;

MySQL基础_模糊查询—is null关键字

SELECT
last_name,
job_id
FROM
employees
WHERE
job_id IN( ‘IT_PROT’ ,‘AD_VP’,‘AD_PRES’);

#4、is null
/*
=或<>不能用于判断null值
is null或is not null 可以判断null值

#案例1:查询没有奖金的员工名和奖金率
SELECT
last_name,
commission_pct
FROM
employees
WHERE
commission_pct IS NULL;

#案例1:查询有奖金的员工名和奖金率
SELECT
last_name,
commission_pct
FROM
employees
WHERE
commission_pct IS NOT NULL;

#----------以下为错误
SELECT
last_name,
commission_pct
FROM
employees

WHERE
salary IS 12000;

MySQL基础_【补充】安全等于的介绍

#安全等于 <=>

#案例1:查询没有奖金的员工名和奖金率
SELECT
l_name,
commission_pct
FROM
table
WHERE
commission_pct <=>NULL;

#案例2:查询工资为12000的员工信息
SELECT
_name,
salary
FROM
employees

WHERE
salary <=> 12000;

#is null pk <=>

IS NULL:仅仅可以判断NULL值,可读性较高,建议使用
<=> :既可以判断NULL值,又可以判断普通的数值,可读性较低(比较模糊)

SELECT j.jsdh,t.*,j.zsfrgsbh,j.zsfrgsmc FROM js_tsjl t left join ( SELECT mx.bzdh,zsfrgsbh,zsfrgsmc,jsdw,GROUP_CONCAT(js.jsdh) jsdh, profit_center_id from js_jsdb_ywmx mx LEFT JOIN js_jsdb js on mx.jsdh=js.jsdh where js.zt != 0 <if test="zq != null and zq != ''"> AND js.zq = #{zq} </if> GROUP BY mx.bzdh,zsfrgsbh,zsfrgsmc,jsdw, profit_center_id ) j on j.bzdh=t.id WHERE t.tszt <> '3' <if test="jsdh != null and jsdh != ''" > AND j.jsdh like concat(concat('%',#{jsdh}),'%') </if> <if test="bzrqs != null and bzrqz !=null"> AND t.bzrq BETWEEN #{bzrqs} and #{bzrqz} </if> <if test="zsfrgsbh != null and zsfrgsbh != ''"> AND j.zsfrgsbh = #{zsfrgsbh} </if> <if test="sqr != null and sqr != ''"> AND t.sqr = #{sqr} </if> <if test="bzdh != null and bzdh != ''"> AND t.id = #{bzdh} </if> <if test="gsdm != null and gsdm != ''"> AND t.gsdm = #{gsdm} </if> <if test="tszt != null and tszt != ''"> AND t.tszt = #{tszt} </if> <if test="qybh != null and qybh != ''"> AND t.qybh = #{qybh} </if> <if test="dzf != null and dzf != ''"> AND t.dzf = #{dzf} </if> <if test="notDjztList != null"> AND (t.djzt NOT IN <foreach collection="notDjztList" index="index" item="item" open="(" close=")" separator=","> #{item:VARCHAR} </foreach> OR t.djzt IS NULL OR t.djzt = '') </if> <if test="frgsList != null and frgsList.size()> 0"> AND j.jsdw IN <foreach collection="frgsList" item="frgs" open="(" separator="," close=")"> #{frgs} </foreach> </if> <if test="profitCenterIdList != null and profitCenterIdList.size() > 0"> and j.profit_center_id in <foreach collection="profitCenterIdList" item="profitCenterId" index="index" open="(" separator="," close=")"> #{profitCenterId} </foreach> </if> ORDER BY t.bzrq, t.id DESC
最新发布
10-10
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值