1. හැඳින්වීම
MySQL දත්ත ගබඩාවක ප්රශ්න (queries) කාර්යක්ෂමව ක්රියාත්මක කිරීම සඳහා වැදගත් අංග之一 වන BETWEEN මෙහෙයුම්කරුය. මෙම මෙහෙයුම්කරු විශේෂිත පරාසයක් තුළ දත්ත පවතිනදැයි පරීක්ෂා කිරීමේදී ඉතා ප්රයෝජනවත් වේ. එය සංඛ්යා, දිනයන් සහ අක්ෂර මාලා සඳහා පරාස නියම කිරීමට භාවිතා කරයි, දත්ත ගබඩා සෙවීම් සහ පෙරහන් කිරීමේදී කාර්යක්ෂම දත්ත ලබා ගැනීමට ඉඩ සලසයි. මෙම ලිපියේ, MySQL BETWEEN මෙහෙයුම්කරු භාවිතා කිරීම, ප්රායෝගික උදාහරණ, සහ වැදගත් සැලකිලිම් පිළිබඳ විස්තරාත්මකව පැහැදිලි කරමු.
2. BETWEEN මෙහෙයුම්කරුගේ මූලික ව්යවස්ථාව
BETWEEN මෙහෙයුම්කරු සමාලෝචනය
BETWEEN මෙහෙයුම්කරු WHERE වාක්යයේ භාවිතා වන කොන්දේසියක් වන අතර, නියමිත තීරුවේ අගය එක පරාසයක් තුළ පවතිනදැයි පරීක්ෂා කරයි. මූලික ව්යවස්ථාව පහත පරිදි වේ:
SELECT column_name
FROM table_name
WHERE column_name BETWEEN start_value AND end_value;
උදාහරණයක් ලෙස, කාර්ය මණ්ඩලයේ වයස් තොරතුරු ගබඩා කරන වගුවක් තිබේ නම්, මෙම මෙහෙයුම්කරු භාවිතා කර විශේෂිත වයස් පරාසයක් තුළ කාර්ය මණ්ඩලය ලබා ගත හැක.
NOT BETWEEN නැති ආකාරය
ඔබට නියමිත පරාසයකට අයත් නොවන අගයන් සොයන්න අවශ්ය නම්, NOT BETWEEN නැති ආකාරය භාවිතා කරන්න.
SELECT column_name
FROM table_name
WHERE column_name NOT BETWEEN start_value AND end_value;
3. සංඛ්යා පරාසයක් නියම කිරීම
සංඛ්යා පරාස සඳහා BETWEEN භාවිතා කිරීම
BETWEEN මෙහෙයුම්කරු සංඛ්යා පරාස නියම කිරීම සඳහා ඉතා පහසුය. උදාහරණයක් ලෙස, කාර්ය මණ්ඩලයේ වැටුප් 50,000 සහ 100,000 අතර පවතින දත්ත ලබා ගැනීමට, ප්රශ්නය පහත පරිදි ලියන්න:
SELECT employee_id, name, salary
FROM employees
WHERE salary BETWEEN 50000 AND 100000;
උදාහරණ දත්ත:
| employee_id | name | salary |
|---|---|---|
| 1 | Sato | 45000 |
| 2 | Suzuki | 55000 |
| 3 | Takahashi | 75000 |
| 4 | Tanaka | 120000 |
ක්රියාත්මක ප්රතිඵල:
| employee_id | name | salary |
|---|---|---|
| 2 | Suzuki | 55000 |
| 3 | Takahashi | 75000 |
ඉහත ප්රශ්නයේ, වැටුප් 50,000 සහ 100,000 අතර පවතින කාර්ය මණ්ඩලය පමණක් තෝරා ගනී.
සසඳන මෙහෙයුම්කරුන්ගෙන් වෙනස
එම කොන්දේසිය සසඳන මෙහෙයුම්කරු (comparison operators) භාවිතා කර ලියන්නේ නම්, එය මෙසේ පෙනේ:
SELECT employee_id, name, salary
FROM employees
WHERE salary >= 50000 AND salary <= 100000;
BETWEEN භාවිතා කිරීම ප්රශ්නය කෙටි කරයි, කියවීමට පහසු කරයි. විශේෂයෙන්ම බහු පරාස කොන්දේසි ඇතුළත් වන විට, BETWEEN ප්රශ්නය තේරුම් ගැනීමට පහසු කරයි.

4. දිනය පරාසයක් නියම කිරීම
දිනය දත්ත සමඟ BETWEEN භාවිතා කිරීම
BETWEEN දිනය පරාස නියම කිරීම සඳහාද භාවිතා කළ හැක. උදාහරණයක් ලෙස, 2024 ජනවාරි 1 සිට 2024 දෙසැම්බර් 31 දක්වා ඇණවුම් වගුවෙන් ඇණවුම් ලබා ගැනීමට, ප්රශ්නය පහත පරිදි ලියන්න:
SELECT order_id, customer_id, order_date
FROM orders
WHERE order_date BETWEEN '2024-01-01' AND '2024-12-31';
උදාහරණ දත්ත:
| order_id | customer_id | order_date |
|---|---|---|
| 1 | 101 | 2024-01-15 |
| 2 | 102 | 2024-05-30 |
| 3 | 103 | 2025-03-01 |
ක්රියාත්මක ප්රතිඵල:
| order_id | customer_id | order_date |
|---|---|---|
| 1 | 101 | 2024-01-15 |
| 2 | 102 | 2024-05-30 |
ඉහත පරිදි, BETWEEN මෙහෙයුම්කරු නියමිත දිනය පරාසය තුළ දත්ත ලබා ගනී.
කාල දත්ත සැකසීම
දිනය දත්ත කාලය (time) ඇතුළත් නම්, විශේෂ අවධානයක් අවශ්ය වේ. උදාහරණයක් ලෙස, order_date තීරුව DATETIME වර්ගයේ olup කාල අගයන් ඇතුළත් නම්, BETWEEN පරාසයක් නියම කිරීම ආරම්භ දිනයේ අර්ධරෑ සිට අවසන් දිනයේ 23:59:59 දක්වා රෙකෝඩ් ඇතුළත් කරයි.
WHERE order_date BETWEEN '2024-01-01 00:00:00' AND '2024-12-31 23:59:59';
5. අක්ෂර මාලා පරාසයක් නියම කිරීම
අක්ෂර දත්ත සමඟ BETWEEN භාවිතා කිරීම
BETWEEN මෙහෙයුම්කරු අක්ෂර දත්ත සඳහාද යොදා ගත හැක. උදාහරණයක් ලෙස, නාමය ‘A’ සහ ‘M’ අතර පවතින නිෂ්පාදන සොයන්න, ප්රශ්නය පහත පරිදි ලියන්න:
SELECT product_id, product_name
FROM products
WHERE product_name BETWEEN 'A' AND 'M';
උදාහරණ දත්ත:
| product_id | product_name |
|---|---|
| 1 | Apple |
| 2 | Banana |
| 3 | Mango |
| 4 | Orange |
ක්රියාත්මක ප්රතිඵල:
| product_id | product_name |
|---|---|
| 1 | Apple |
| 2 | Banana |
| 3 | Mango |
අකාරානුකූල අනුපිළිවෙළ සැලකිලිම්
අක්ෂර පරාස නියම කිරීමේදී, අක්ෂර මාලා අකාරානුකූලව (alphabetical) පිළිවෙලට සකස් කර ඇති බව ගණනය කරයි. දත්ත ගබඩාවේ collation සැකසුම් අනුව, ලොකු අකුරු සහ කුඩා අකුරු වෙනස් ලෙස සැලකිය හැක. උදාහරණයක් ලෙස, 'a' සහ 'A' වෙනස් අගයන් ලෙස සැලකිය හැක.
6. BETWEEN භාවිතා කිරීමේ වැදගත් සැලකිලිම්
පරාස අනුපිළිවෙළ වැදගත් වේ
BETWEEN ක්රියාකාරකය භාවිතා කිරීමේදී, ආරම්භක සහ අවසාන වලංගුවල පිළිවෙල ගැන සැලකිලිමත් වන්න. ආරම්භක වලංගු අවසාන වලංගුවට වඩා වැඩි නම්, විමර්ශනය අනපේක්ෂිත ප්රතිඵල ලබා දිය හැක.
SELECT * FROM table_name WHERE column_name BETWEEN 100 AND 50; -- unintended result
එසේම, BETWEEN සීමාවන් දෙකම ඇතුළත් කරන බැවින්, ආරම්භක සහ අවසාන වලංගු සැලකිල්ලෙන් තෝරා ගැනීම වැදගත්.
සුචිකරණ භාවිතය සහ කාර්යක්ෂමතාව
BETWEEN ක්රියාකාරකය සාමාන්ය සංසන්දන ක්රියාකාරකවලට සමාන කාර්ය සාධනයක් ඇති බව ගෞරවනීයයි. කෙසේ වෙතත්, විමර්ශන කාර්ය සාධනය අංග්කරණය කිරීම සඳහා, නිවැරදි සුචිකරණය අත්යවශ්යයි. සුචිකරණ නිවැරදිව සකස් කර ඇති විට, BETWEEN ක්රියාකාරකය භාවිතා කරමින් විමර්ශන ක්රියාත්මක වීමේ වේගය වැඩි දියුණු වේ. උදාහරණයක් ලෙස, දිනය පිළිබඳ වර්ගයක සුචිකරණයක් සකස් කිරීමෙන් දින පරාස විමර්ශන වඩා කාර්යක්ෂමව ක්රියාත්මක වේ.
7. ප්රායෝගික විමර්ශන සහ උසස් උදාහරණ
බහු වර්ග සමඟ BETWEEN භාවිතය
BETWEEN ක්රියාකාරකය බහු වර්ග තුළින් ඒකාබද්ධව භාවිතා කළ හැකිය. උදාහරණයක් ලෙස, නිෂ්පාදන මිල සහ මෙට්ට ගණන දෙකම නිර්දේශ කරමින් පරාස සෙවීමක් සිදු කිරීමේදී, පහත විමර්ශනය භාවිතා කළ හැක:
SELECT product_name, price, stock
FROM products
WHERE price BETWEEN 1000 AND 5000
AND stock BETWEEN 50 AND 200;
මෙම විමර්ශනය 1,000 සිට 5,000 දක්වා මිල ඇති නිෂ්පාදන සහ 50 සිට 200 දක්වා මෙට්ට ගණන ඇති නිෂ්පාදන සෙවීමේදී භාවිතා වේ.
NOT BETWEEN උසස් උදාහරණය
අවශ්ය පරාසයෙන් පිටත දත්ත නිදහස් කිරීම සඳහා ප්රතිවිරුද්ධ ආකාරය NOT BETWEEN භාවිතා කිරීමෙන්, උදාහරණයක් ලෙස, වැටුප් 50,000ට පහළ හෝ 100,000ට ඉහළ ඇති සේවකයින් සෙවීම සඳහා, විමර්ශනය පහත පරිදි ලියන්න:
SELECT employee_id, name, salary
FROM employees
WHERE salary NOT BETWEEN 50000 AND 100000;
ක්රියාත්මක ප්රතිඵල:
| employee_id | name | salary |
|---|---|---|
| 1 | Sato | 45000 |
| 4 | Tanaka | 120000 |
මෙම විමර්ශනය 50,000 සිට 100,000 දක්වා පරාසය තුළ නොපත් වන වැටුප් ඇති සේවකයින් ලබා ගනී. NOT BETWEEN භාවිතා කිරීමෙන් ප්රතිවිරුද්ධ තත්ත්ව මත පදනම්ව දත්ත නිදහස් කිරීම පහසු වේ.
8. දෘශ්යමාන විමර්ශන උදාහරණය
විමර්ශන ප්රතිඵල දෘශ්යමානව පෙන්වීම සඳහා, සරල සිතියමක් භාවිතා කිරීම ඵලදායී වේ. උදාහරණයක් ලෙස, පහත රූප සටහන BETWEEN ක්රියාකාරකය ක්රියා කරන ආකාරය පැහැදිලි කරයි:
Price range: [----- 1000 ---- 5000 -----]
Product A price: 3000 (within range)
Product B price: 6000 (outside range)
මෙවැනි සිතියමක් භාවිතා කිරීමෙන්, දත්ත නිර්දේශිත විමර්ශන පරාසය තුළ පත්වනුද යන්න සහජීවනයෙන් තේරුම් ගැනීම පහසු වේ.
9. සාරාංශය
BETWEEN ක්රියාකාරකය MySQL හි පරාස මත පදනම්ව සෙවීම් සිදු කිරීමේදී ඉතා උපකාරී මෙවලමකි. එය සංඛ්යාත්මක, දිනය සහ වචන දත්ත සඳහා යෙදිය හැකි අතර, විමර්ශන සංක්ෂිප්තව සහ කාර්යක්ෂමව ලියා ගැනීමට ඉඩ සලසයි. කෙසේ වෙතත්, සීමාවන් ඇතුළත් කිරීම සහ නිවැරදි සුචිකරණ භාවිතය වැනි ප්රධාන සලකා බැලීම් තේරුම් ගැනීම වැදගත්. මෙම දැනුම උපයෝගී කර ගැනීමෙන්, දත්ත සමුදාය විමර්ශන කාර්ය සාධනය ඉංග්කරණය කළ හැකි අතර, ඔබට අවශ්ය දත්ත කාර්යක්ෂමව නිදහස් කළ හැක.
10. ආශ්රිත
වැඩි විස්තර සහ අමතර භාවිත උදාහරණ සඳහා, නිල MySQL ලේඛන සහ විශේෂිත දත්ත සමුදාය පොත් බලන්න. විමර්ශන ඔබම පුහුණු කිරීමෙන් BETWEEN ක්රියාකාරකය පිළිබඳ ඔබගේ අවබෝධය තවදුරටත් ගැඹුරු කර ගත හැක.


