不記得有代替in的語句,可能也是因為我不太關注sql導致水平較低哈。
這種問題通常是由於無限分類表本身的設計問題導致的,例如只有id, parent_id兩個字段,所以只要in了,如果無限分類表包含 id, parent_id, level(樹高), path這個欄位的時候就可以避免使用in了。
我個人使用的乙個無限分級表包括以下的字段
id 唯一索引
parent_id 父級的id
number 數軸投影序號
leve 樹高
left_number 已當前節點為樹根時,其下的最左端的子節點的數軸投影序號
乙個簡單的例子演變:
[id:1, level:1 number: 1, left_number:1]
插入乙個子節點
[id:1, level:1 number: 2, left_number:1]
[id:2, level:2 number: 1, left_number:1]
於level2再插入乙個子節點
[id:1, level:1 number: 3, left_number:1]
[id:2, level:2 number: 1, left_number:1] [id:2, level:2 number: 2, left_number:2]
這種樹形的資料維護很麻煩,但是搜尋要快的多,例如任意節點下的全部子節點就是left_number到number-1。用這個做過乙個chuan啊銷系統的人員結構樹,效果很不錯。
核心思路就是把一顆樹的分支轉換為數軸上的點/線段,從而在數軸上得到完整的樹的投影。
忘了乙個top_id,表示節點對應的根節點,否則表裡面有多顆樹的話就出問題了。
HTTP長連線和WebSocket長連線的區別
要理解http長連線和websocket長連線的區別,首先要理解一下什麼是http的長連線和短連線。首先需要消除乙個誤解 http協議是基於請求 響應模式的,因此客戶端請求後只要服務端給了響應,本次http請求就結束了,沒有長連線這一說。那麼自然也就沒有短連線這一說了。所謂的http分為長連線和短連...
最大幀長和最小幀長詳解
文章出處 在傳統乙太網中,為什麼要有最小幀長度和最大幀長度的限制?乙太網 ieee 802.3 幀格式 1.前導碼 7位元組0x55,一串1 0間隔,用於訊號同步 2.幀起始定界符 1位元組0xd5 10101011 表示一幀開始 3.da 目的mac 6位元組 4.sa 源mac 6位元組 5.型...
長連線 短鏈結 長輪詢 短輪詢
原文 那就是一直認為,http連線分為長連線和短連線,而我們現在常用的都是http1.1,因此我們用的都是長連線。這句話其實只對了一半,我們現如今的http協議,大部分都是1.1的,因此我們平時用的基本上都是長連線。但是前半句是不對的,http協議根本沒有長短連線這一說,也正因為誤解了這個,導致對於...