Oracle
විමසුමක් එහි MySQL limit
වගන්තියක් අඩංගු වන පරිදි හැසිරීමට ක්රමයක් තිබේද?
තුළ MySQL
, මට මෙය කළ හැකිය:
select *
from sometable
order by name
limit 20,10
21 සිට 30 දක්වා පේළි ලබා ගැනීමට (පළමු 20 මඟ හරින්න, ඊළඟ 10 දෙන්න). පේළි තෝරාගෙන ඇත්තේ order by
, පසුව එය 20 වන නාමයෙන් අකාරාදී පිළිවෙලින් ආරම්භ වේ.
තුළ Oracle
, මිනිසුන් සඳහන් කරන එකම දෙය rownum
ව්යාජ තීරුවයි, නමුත් එය කලින් ඇගයීමට ලක් කෙරේ order by
, එයින් අදහස් වන්නේ:
select *
from sometable
where rownum <= 10
order by name
පේළි දහයක අහඹු කට්ටලයක් නමින් ඇණවුම් කරනු ඇත, එය සාමාන්යයෙන් මට අවශ්ය නොවේ. ඕෆ්සෙට් එකක් නියම කිරීමට ද එය ඉඩ නොදේ.
ORDER BY
. පළමුව ඇණවුම් කිරීමේ සම්පූර්ණ කාරණය එයයි. යටින් පවතින දත්ත වෙනස් වී ඔබගේ ප්රති result ලය එය නිසා වෙනස් වේ නම්, යල් පැන ගිය තොරතුරු වෙනුවට යාවත්කාලීන කළ ප්රති results ල පරිශීලකයාට පෙන්වන්නේ නැත්තේ ඇයි? එසේම, රාජ්ය කළමනාකරණය යනු හැකිතාක් වළක්වා ගත යුතු වසංගතයකි. එය සංකූලතා සහ දෝෂ වල නිරන්තර ප්රභවයකි; ක්රියාකාරීත්වය එතරම් ජනප්රිය වන්නේ එබැවිනි. මතකයේ තබා ඇති සම්පූර්ණ ප්රති result ලය කල් ඉකුත්වීමට ඔබ දන්නේ කවදාද? වෙබයේ, පරිශීලකයා ඉවත්ව යන විට ඔබට දැන ගැනීමට ක්රමයක් නොමැත.