【SQL】SQL中的IN方法:查詢多種狀態值
阿新 • • 發佈:2019-02-13
一、起因
因為要查詢兩種狀態的值,如果用普通的查詢,需要查兩次,再把兩次查詢的值放到一個集合中,再去重,這樣查詢非常麻煩,所以決定優化,使用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型別,用整數,就一個字,穩;
歡迎關注我的公眾號:
【幕橋社群】