- 1 1. හැඳින්වීම
- 2 2. MySQL IF ෆන්ක්ෂන් හි මූලික
- 3 3. IF සමග අනෙකුත් කොන්ඩිෂනල් ලොජික් සංසන්දනය (CASE, IFNULL, ආදිය)
- 4 4. ප්රායෝගික උදාහරණ: IF ෆන්ක්ෂන් භාවිතයෙන් ඩේටා මැනිපියුලේෂන්
- 5 5. උසස්: උපවිමසුම් IF ක්රියාකාරකම සමඟ එකතු කිරීම
- 6 6. ගැටළු නිරාකරණය: IF ක්රියාකාරකම භාවිතා කිරීමේදී සාමාන්ය ගැටළු සහ විසඳුම්
- 7 7. නිගමනය
1. හැඳින්වීම
MySQL හි කොන්ඩිෂනල් බ්රෑන්චිං ඉතා වැදගත් වන්නේ නමුත් විවිධාකාර ඩේටාබේස් විමර්ශන සහ ඩේටා මැනිපියුලේෂන් සඳහා. විශේෂයෙන්ම, කොන්ඩිෂන්වලට අනුව විවිධ ප්රතිඵල ලබාදීමට හෝ ඩේටා පරිවර්තනය කිරීමට අවශ්ය වන විට, කොන්ඩිෂනල් ලොජික් ඉතා උපකාරී වේ. මෙම විකල්ප අතර, IF ෆන්ක්ෂන් එක කොන්ඩිෂනල් බ්රෑන්චිං ක්රියාත්මක කිරීමේ සරලම සහ පහසුම ක්රමවේදයකි. මෙම ලිපියෙහි, MySQL IF ෆන්ක්ෂන් හි මූලික සිට උසස් භාවිතය දක්වා සියල්ල පැහැදිලි කරන්නෙමු, සහ ඔබට ක්ෂණිකව යෙදිය හැකි ප්රායෝගික උදාහරණ හඳුන්වා දෙන්නෙමු。
2. MySQL IF ෆන්ක්ෂන් හි මූලික
2.1 IF ෆන්ක්ෂන් ව්යාකරණය
IF ෆන්ක්ෂන් එක නිර්දේශිත කොන්ඩිෂන් සත්ය (TRUE) නම් විශේෂිත වටිනාකමක් ලබාදෙයි, සහ මිත්යා (FALSE) නම් වෙනත් වටිනාකමක් ලබාදෙයි. ව්යාකරණය පහත පරිදිය.
IF(condition, value_if_true, value_if_false)
2.2 මූලික භාවිතය
IF ෆන්ක්ෂන් එක භාවිතයෙන්, උදාහරණයක් ලෙස, විශේෂිත කොලම් වටිනාකමක් නිශ්චිත ත්රෑස්ඩ්ඩ් එකක් සපුරාලනවාද යන්න අනුව විවිධ ප්රතිඵල ලබාදිය හැකිය. පහත උදාහරණයේදී, sales වගුවේ amount කොලම් 1000 හෝ ඊට වැඩි නම් “High” ලබාදෙයි; නැතහොත් “Low” ලබාදෙයි.
SELECT
amount,
IF(amount >= 1000, 'High', 'Low') AS sales_category
FROM
sales;
මෙම විමර්ශනයේදී, amount වටිනාකම 1000 හෝ ඊට වැඩි නම්, sales_category “High” ලෙස සකස් වේ; නැතහොත් “Low” ලෙස සකස් වේ.

3. IF සමග අනෙකුත් කොන්ඩිෂනල් ලොජික් සංසන්දනය (CASE, IFNULL, ආදිය)
3.1 CASE ප්රකාශනය සමග සංසන්දනය
CASE ප්රකාශනය භාවිතා වන්නේ IF ෆන්ක්ෂන් ට වඩා සංකීර්ණ කොන්ඩිෂනල් බ්රෑන්චිං කළ යුතු විටය. CASE ප්රකාශනයේ ව්යාකරණය පහත පරිදිය.
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE default_value
END
CASE ප්රකාශනය බහු කොන්ඩිෂන් ඇගයීම් කර සත්ය වන පළමු කොන්ඩිෂන් සඳහා ප්රතිඵලය ලබාදෙයි. IF ෆන්ක්ෂන් සමග සංසන්දනය කළ විට, CASE වැඩි කොන්ඩිෂන් සැකසීමට හැකි වන බැවින් සංකීර්ණ ලොජික් ගොඩනැගීමේදී එය උපකාරී වේ.
3.2 IFNULL ෆන්ක්ෂන් සමග සංසන්දනය
IFNULL ෆන්ක්ෂන් එක NULL වටිනාකම් කළමනාකරණය සඳහා භාවිතා වේ. නිර්දේශිත කොලම් වටිනාකම NULL නම්, එය අත්සන්තක වටිනාකමක් ලබාදෙයි. ව්යාකරණය පහත පරිදිය.
IFNULL(column_name, default_value)
උදාහරණයක් ලෙස, පහත විමර්ශනය phone_number කොලම් NULL නම් “N/A” ලබාදෙයි.
SELECT
name,
IFNULL(phone_number, 'N/A') AS phone
FROM
customers;
3.3 ලොජිකල් ඔපරේටර් සමග ඒකාබද්ධ කිරීම
IF ෆන්ක්ෂන් එක ලොජිකල් ඔපරේටර් (AND, OR, XOR, ආදිය) සමග ඒකාබද්ධ කර වඩාත් නම්යශීලී කොන්ඩිෂනල් බ්රෑන්චිං නිර්මාණය කළ හැකිය. පහත උදාහරණයේදී, amount 1000 හෝ ඊට වැඩි සහ region “East” නම් “High East” ලබාදෙයි; නැතහොත් “Other” ලබාදෙයි.
SELECT
amount,
region,
IF(amount >= 1000 AND region = 'East', 'High East', 'Other') AS category
FROM
sales;
4. ප්රායෝගික උදාහරණ: IF ෆන්ක්ෂන් භාවිතයෙන් ඩේටා මැනිපියුලේෂන්
4.1 කොන්ඩිෂන් මත වටිනාකම් වෙනස් කිරීම
IF ෆන්ක්ෂන් එක භාවිතයෙන්, විශේෂිත කොන්ඩිෂන් මත ඩේටා වෙනස් කළ හැකිය. උදාහරණයක් ලෙස, orders වගුවේ, පහත විමර්ශනය quantity 10 හෝ ඊට වැඩි නම් පේළි “Bulk Order” ලෙස ලේබල් කරයි, සහ නැතහොත් “Standard Order”.
SELECT
order_id,
quantity,
IF(quantity >= 10, 'Bulk Order', 'Standard Order') AS order_type
FROM
orders;
4.2 ඒග්රිගේෂන් තුළ IF ෆන්ක්ෂන් භාවිතය
IF ෆන්ක්ෂන් එක ඒග්රිගේෂන් විමර්ශන තුළද භාවිතා කළ හැකිය. උදාහරණයක් ලෙස, පහත විමර්ශනය නිෂ්පාදන විකුණුම් 100 හෝ ඊට වැඩි පේළි සඳහා පමණක් මුළු විකුණුම් මුදල් ගණනය කරයි.
SELECT
product_id,
SUM(IF(amount >= 100, amount, 0)) AS high_sales_total
FROM
sales
GROUP BY
product_id;
මෙම විමර්ශනයේදී, amount 100 හෝ ඊට වැඩි විකුණුම් පමණක් මුළු ගණනයට ඇතුළත් වේ.
4.3 කාර්ය සාධනය සලකා බැලීම්
Overusing the IF function can affect query performance. In particular, when processing large datasets or using complex conditional logic, you should consider applying indexes and optimizing your queries.
IF ක්රියාකාරකම අධිකව භාවිත කිරීම විමසුම් කාර්ය සාධනයට බලපායි. විශේෂයෙන්, විශාල දත්ත කට්ටලයන් සැකසීමේදී හෝ සංකීර්ණ කොන්දේසි තර්ක භාවිතා කිරීමේදී, ඔබට ඉන්ඩෙක්ස් යෙදීම සහ ඔබේ විමසුම් සුදානම් කිරීම ගැන සලකා බැලිය යුතුය.

5. උසස්: උපවිමසුම් IF ක්රියාකාරකම සමඟ එකතු කිරීම
5.1 උපවිමසුමක් තුළ IF ක්රියාකාරකම භාවිත කිරීම
The IF function can also be used inside subqueries to implement more complex conditional branching. In the following example, it returns “VIP” if the total order amount for each customer is 1000 or more; otherwise, it returns “Regular”.
IF ක්රියාකාරකම උපවිමසුම් තුළද භාවිතා කරමින් වඩා සංකීර්ණ කොන්දේසි ශාඛාකරණය ක්රියාත්මක කළ හැක. පහත උදාහරණයේ, එක් එක් පාරිභෝගිකයාගේ මුළු ඇණවුම් මුදල 1000 හෝ ඊට වැඩි නම් “VIP” ලෙස 반환 කරයි; එසේ නොමැති නම් “Regular” ලෙස 반환 කරයි.
SELECT
customer_id,
IF((SELECT SUM(amount) FROM orders WHERE customer_id = c.customer_id) >= 1000, 'VIP', 'Regular') AS customer_type
FROM
customers c;
5.2 සංකීර්ණ කොන්දේසි තර්ක ක්රියාත්මක කිරීම
By combining subqueries with the IF function, you can implement more complex conditional branching. For example, it is effective when you need to take different actions based on product inventory levels, or when evaluating conditions while referencing multiple tables.
උපවිමසුම් IF ක්රියාකාරකම සමඟ එකතු කිරීමෙන්, ඔබට වඩා සංකීර්ණ කොන්දේසි ශාඛාකරණය ක්රියාත්මක කළ හැක. උදාහරණයක් ලෙස, නිෂ්පාදන තොග මට්ටම් අනුව විවිධ ක්රියාමාර්ග ගැනීමට අවශ්ය වන විට, හෝ බහු වගු සම්බන්ධ කරමින් කොන්දේසි ඇගයීමට අවශ්ය වන විට මෙය ප්රයෝජනවත් වේ.
6. ගැටළු නිරාකරණය: IF ක්රියාකාරකම භාවිතා කිරීමේදී සාමාන්ය ගැටළු සහ විසඳුම්
6.1 දත්ත වර්ග නොගැලපීම
One important thing to watch out for when using the IF function is the data type of the returned values. If the IF function returns different data types, it may produce unexpected results. For example, mixing numeric values and strings can cause the query output to appear in an unintended format.
IF ක්රියාකාරකම භාවිතා කරන විට සැලකිල්ලට ගත යුතු වැදගත් කරුණක් වන්නේ 반환 කරන අගයන්ගේ දත්ත වර්ගයයි. IF ක්රියාකාරකම විවිධ දත්ත වර්ග 반환 කරන්නේ නම්, අනපේක්ෂිත ප්රතිඵල ලැබිය හැක. උදාහරණයක් ලෙස, සංඛ්යාත්මක අගයන් සහ පද පෙළ එකට මිශ්ර කිරීමෙන් විමසුම් ප්රතිඵලය අනිච්චිත ආකාරයකින් පෙන්විය හැක.
6.2 NULL අගයන් හසුරවීම
When handling NULL values with the IF function, unexpected results may occur. If the condition expression evaluates to NULL, the IF function treats it as FALSE, so you need to design your condition carefully.
IF ක්රියාකාරකම සමඟ NULL අගයන් හසුරවද්දී, අනපේක්ෂිත ප්රතිඵල ඇති විය හැක. කොන්දේසි ප්රකාශනය NULL ලෙස ඇගයුම් කරන්නේ නම්, IF ක්රියාකාරකම එය FALSE ලෙස ගනී, එබැවින් ඔබේ කොන්දේසිය කාරුණිකව සැලසුම් කළ යුතුය.
6.3 කාර්ය සාධන සුදානම
If you use the IF function on a large amount of data, query execution speed may decrease. In that case, consider using indexes or refactoring your query to improve performance.
ඔබ IF ක්රියාකාරකම විශාල දත්ත ප්රමාණයකට භාවිතා කරන විට, විමසුම් ක්රියාත්මක වේගය අඩුවිය හැක. එවැනි අවස්ථාවක, ඉන්ඩෙක්ස් භාවිතා කිරීම හෝ ඔබේ විමසුම නැවත සැලසුම් කිරීමෙන් කාර්ය සාධනය වැඩිදියුණු කළ හැක.
7. නිගමනය
In this article, we covered everything from the basics to advanced usage of the MySQL IF function. The IF function is a powerful tool for implementing simple conditional branching, and by combining it with other conditional methods or subqueries, you can perform more complex data manipulation. By using the IF function properly, you can achieve efficient database operations.
මෙම ලිපියේ, MySQL IF ක්රියාකාරකමේ මූලික කරුණු සිට උසස් භාවිතය දක්වා සියල්ලක් අපි ආවරණය කළෙමු. IF ක්රියාකාරකම සරල කොන්දේසි ශාඛාකරණය ක්රියාත්මක කිරීම සඳහා ශක්තිමත් මෙවලමක් වන අතර, එය අනෙකුත් කොන්දේසි ක්රම හෝ උපවිමසුම් සමඟ එකතු කිරීමෙන් ඔබට වඩා සංකීර්ණ දත්ත සැකසීම කළ හැක. IF ක්රියාකාරකම නිසි ලෙස භාවිතා කිරීමෙන්, ඔබට කාර්යක්ෂම දත්ත ගබඩා මෙහෙයුම් ලබා ගත හැක.


