sql判斷記錄是否屬於乙個區間(起點 終點)

2022-09-13 16:27:12 字數 677 閱讀 6780

遇到這麼乙個小問題,根據錄入的起點數值和終點數值到資料庫檢視錄入的這個區間在資料庫中是不是存在,這個問題其實就是乙個邏輯判斷,但是當時一下子沒像清楚。畫個圖看一下就明白了下面我用圖表示下:

其中紅色表示資料庫中的值,黑色表示輸入的值,下面「起點」用qd表示,「終點」用zd表示,

「輸起」用sq表示,「輸終」用sz表示。

首先第一種情況他的sql我們經常寫,qd <= sq和zd> = sz

第二種情況那其實就是資料庫記錄的起點數值在輸入數值的中間,也就是qd> sq和qd

第三種情況和第二種類似,就是zd> sq和zd

第四種情況就是輸入的數值包含了資料庫記錄的區間數值,也就是qd> = sq和zd <= sz

把上面的四種情況和起來查詢的結果就是輸入的數值區間在資料庫中已存在的記錄,

最後的sql是這樣的:

select * from temp t  where ((qd<=sq and zd >=sz) or ( qd > sq and qd < sz ) or (zd > sq and zd < sz)  or (qd >= sq and zd <= sz) ) and t.id !=0
**出處:

判斷乙個IP是否歸屬於中國

由於只需要判斷到國家的緯度,所以不需要用到純真ip庫這樣龐大的ip庫,通過網上的查詢,發現有個中國ip段的列表 可以看到ip段有2k個左右,如果用二分查詢法,時間複雜度是logn。基本上能夠滿足需求了。一 整理ip段配置 為了方便ip進行比較,這裡將ip轉換為long格式。把資料load進來,取第一...

判斷乙個程序是否開啟

標頭檔案 include pragma comment lib,psapi.lib findprocess 找到自己檔名 char szname x.exe dword aprocesses 1024 cbneeded,dwprocesses char szprocessname max path ...

判斷乙個樹是否對稱

使用遞迴的方法判斷樹是否對稱,也讓我更進一步的理解了遞迴。class solution object def ismirror self,left,right if left none and right none 如果左右子樹都為空,則對稱 return true elif left none o...