【SQL語句】-范圍查詢

BETWEEN 操作符

操作符 BETWEEN ... AND 會選取介于兩個值之間的數(shù)據(jù)范圍。這些值可以是數(shù)值、文本或者日期

select 字段名?from?表名?where?字段名?between?值1?and?值2


在處理數(shù)值時:

在 Mysql 中使用?between and 包含邊界值,即閉區(qū)間內;


在處理文本時:

在日常處理數(shù)據(jù)時,between and的用法基本都是處理數(shù)值或者日期格式,處理字符串類型用between and 意義不大

在處理時間日期時,

在 Mysql 中使用 between and 不包含右邊界數(shù)據(jù),例如:

SELECT * FROM log_info WHERE add_time BETWEEN '2020-08-04' and '2020-08-09'

查詢出來的數(shù)據(jù)并不會包含?2020-08-09?的數(shù)據(jù),因為 Mysql 對日期的查詢是默認?00:00:00,所以上面的時間實際是:2020-08-04 00:00:00?至?2020-08-09 00:00:00,2020-08-09?當天的數(shù)據(jù)不在區(qū)間內,所以查詢不到。

解決方法

將右邊界日期往后推一天,如?2020-08-04?-?2020-08-10;

將右邊界時間精確到秒,如?2020-08-04?-?2020-08-09 23:59:59;

以上問題只會在字段類型為?datetime?中出現(xiàn),Mysql 本身是包含邊界的,但如果字段類型為?datetime?時,數(shù)據(jù)將會被轉換為?2020-08-04 00:00:00,而數(shù)據(jù)類型為?date?則不會出現(xiàn)上述問題。


那么如何范圍查詢內的文本信息呢?

使用in

-- 條件查詢-范圍查詢: in(條件1,條件2) :表示在某個不連續(xù)的范圍內

select * from goods where goods_company in('淘寶','Tmall');

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容