1. 程式人生 > >【SQL】SQL中的IN方法:查詢多種狀態值

【SQL】SQL中的IN方法:查詢多種狀態值

一、起因

因為要查詢兩種狀態的值,如果用普通的查詢,需要查兩次,再把兩次查詢的值放到一個集合中,再去重,這樣查詢非常麻煩,所以決定優化,使用SQL中的IN查詢:

SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,...)

二、解決辦法

這裡,我要查詢status=0和status=1的兩種狀態下的值;

SELECT * FROM jxdx_leave l
WHERE 1=1 
AND l.deleted=0
AND l.`status` IN ('0','1');

這裡寫圖片描述

這裡的status帶了引號,這是因為Navicat自動提示給的,就先用了;可以查到;後面括號內的0和1也都有引號,可以查到;

三、去掉引號:

SELECT * FROM jxdx_leave l
WHERE 1=1 
AND l.deleted=0
AND l.status IN (0,1);

這裡,我IN括號內的內容不帶引號也是可以查到的;查到的內容和上面的一樣,但是,在Mybatis中,帶引號是查不到的,因為status是int型別,雖然Navicat幫我們去掉了引號,但是,還是得按照規矩來,是varchar型別用引號,是int型別,用整數,就一個字,穩;

歡迎關注我的公眾號:
【幕橋社群】
這裡寫圖片描述