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 ලය කල් ඉකුත්වීමට ඔබ දන්නේ කවදාද? වෙබයේ, පරිශීලකයා ඉවත්ව යන විට ඔබට දැන ගැනීමට ක්රමයක් නොමැත.