我正在處理需要我比較Row的每一列的任務。有很多方法可以實現,我很好奇,因爲行數很大。所以我在這裏通過示例來解釋它。SQL中的條件算法Select Query
---------------------------------------------------------------------
ID[P_K] | Name | Address | City | Gender | College
---------------------------------------------------------------------
所以上面是一個表,這是保持從多個高校學生的數據,現在我從外部源獲取一些數據,並需要將它與我的數據庫的數據進行比較的一個基本的例子。以下是可能的方法。
我會選擇查詢與
where Id = <id>
並在我的代碼中一一匹配。其他辦法,我可以做一個選擇查詢與
where ID = <id> and name = <name> and so on...
所以現在我的偏好是第二個選項,因爲較小的複雜性。
現在要繼續,只有一件事情在我的腦海裏產生衝突。
問:
查詢的複雜性這兩個查詢彼此比較(考慮ID作爲主鍵):
where Id = <id>
where ID = <id> and name = <name> and so on...
我知道這個總數取決於我的SQL算法,我搜遍了很多沒有找到MySql的Select算法。
如果有人可以分享Select算法,這將會很有幫助。
具體到算法:
有兩種方法,該算法可以工作:
For number of rows { if(whereCondition1 && whereCondition2 .... && whereCondition<N>)}
}for number of rows { if(whereCondition1){ //Result filter according whereCondition1 if(whereCondition2){ //Result filter according whereCondition2 . . and so on... } else { continue; } } else { continue; } }
現在COMPLE第一個的xity將是O(n)。對於第二個假設ID [P_K],複雜度會降低。對?
那麼從上面哪個算法是用戶?或不是這些?
你想達到什麼目的?你想比較表本身嗎?換句話說,檢查一個學生是否在更多的地方?什麼是期望的輸出? –