မင်္ဂလာပါ!

လှိုက်လှဲစွာကြိုဆိုပါသည်။ ယခု ပထမဆုံးအကြိမ် ရောက်ဖူးခြင်းဖြစ်ပါသလား? ဝင်ရောက် ဆွေးနွေး မေးမြန်းလိုပါလျှင် အောက်တွင်ဖော်ပြထားသော button များမှတဆင့် ဝင်ရောက် ဆွေးနွေးနိုင်သကဲ့သို့ အဖွဲ့ဝင်အသစ်အနေဖြင့်လည်း လျှောက်ထားနိုင်ပါတယ်။

MYSTERY ZILLION တွင် English သို့မဟုတ် Unicode ဖြင့်သာ အသုံးပြုခွင့်ရှိသည်။ ဇော်ဂျီ ၊ ဧရာ စသည်တို့ကို အသုံးပြုခွင့် မရှိ။ Unicode fonts များမှာ Mon3,Yunghkio, Myanamr3 စသည်များ အသုံးပြုနိုင်သည်။ Unicode Guide ကို ဒီမှာ Download ချပါ။ Zawgyi to Unicode Converter
Don't share ebook or software if nobody request. You can find free book websites on here. We are welcome for discussion or asking question instead.

Select Query for MySql

ကျွန်တော် တစ်ခုလောက် မေးချင်လို့ပါ။

Database ထဲမှာ Table (e.g., Payment Table) ထဲမှာ column fields တွေ ရှိမယ်ပေါ့ဗျာ။ အဲဒီ Payment Table ထဲမှာ Status ဆိုတဲ့ Column လည်းရှိမယ်။ Data Type က တော့ Integer ပဲပေးထားပြီး (1, 2, 3, 4) စသဖြင့် value တွေ ရှိနိုင်ပါတယ်။ သူက User ရဲ့ Payment Status ကို ကြည့်တာပါ။ ဥပမာ Status value က 1 ဆိုရင် ‘Pending’, Status value 2 ဆိုရင် ‘Outstanding’ စသဖြင့် View Page မှာ if…else နဲ့ ထုတ်ပြထားပါတယ်။

သိချင်တာက Payment Table ထဲကနေ Select Query နဲ့ ဆွဲထုတ်ကတည်းက Status တန်ဖိုး (1, 2, 3) ပေါ်မူတည်ပြီး (Pending, Outstanding, Paid) ဆိုပြီး View page အတွက် String Value ပါ တစ်ခါတည်း ပြလို့ရအောင် Query ဆွဲလို့ရလားလို့ပါ။ ဒီလိုလုပ်တာဟာ Good Practice / Bad Practice ဖြစ်သလား၊ Performance ပိုင်းဆိုင်ရာမှာရော ထိခိုက်နိုင်သလား သိချင်ပါတယ်ခင်ဗျ။

ကျေးဇူးတင်ပါတယ်။

Tagged:

မှတ်ချက်များ

  • Registered Users

    You can use "CASE" in your query.
    Example:

    SELECT 
    ID,
    CASE Status
       WHEN 1 THEN 'Pending'
       WHEN 2 THEN 'Outstanding'
       WHEN 3 THEN 'Completed'
    END as PaymentStatus
    FROM
    Payment_Table
    

    "CASE" will cost your sql server processing resource. So, you should not be using this if you have lots of types to check and it will impact query performance.

    One alternative and better method is to put your payment types into another table called "PaymentTypeTable" with two columns "ID" and "Name". Then "JOIN" that table in your main select query. It could also save your time later as you don't need to change your query when you want to add new payment type.

    Thanked by 1 moeko
  • edited March 2015 Registered Users

    MySQL Case Syntax ကို အသုံးပြု​လို.ရ​ပါ​တယ်။

    ဥပမာ ။

    SELECT PM.* , 
      CASE
              WHEN PM.STATUS = 1 THEN 'Pending'
              WHEN PM.STATUS = 2 THEN 'Outstanding'
              WHEN PM.STATUS = 3 THEN 'Paid'
              ELSE ''
       END AS status
      FROM PAYMENT PM

    Good Practice / Bad Practice ရယ်​လို.တော့ ကျွန်တော် မ​ဆို​ချင်​ပါ​ဘူး ။ ဘာ​လို.လဲ ဆို​တော့ သူ.နေရာ​နဲ.သူ​ပေါ့​ဗျာ။ အခြေ​အနေပေါ်​မူ​တည်​ပြီး ရေး​သင့်​မ​ရေး​သင့်​ဆို​တာ​က ကိုယ်တိုင်​ပဲ ဆုံးဖြတ်​တာ​ကောင်း​ပါ​တယ်။ မ​သုံး​သင့်​တဲ့ အရာ​သာ​ဆို​ရင်​တော့ MySQL အနေ​နဲ. ပြဌာန်း​ထား​မှာ မဟုတ်​ပါ​ဘူး။ Performance အပိုင်း​နဲ. ပါတ်​သတ်​လို.လည်း MySQL ထဲ​မှာ condition စစ်​ပြီး လိုချင်​တဲ့ result ထုတ်​သင့်​မ​ထုတ်​သင့်​လို. မေး​နေ​သ​လို​ဖြစ်​နေ​တယ်​ဗျာ။ ကိုယ်​လိုချင်​တာ​ကို ကိုယ် စစ်​ပြီး ထုတ်​ရ​မှာ​ပေါ့နော်။ ပါ​ဖော​မန်. နဲ. ပါတ်​သက်​လို.ကတော့ ပထမ​ဆုံး အနေ​နဲ. ပြော​ချင်​တာ​က ဂရုစိုက်​သင့်​လား ဂရု​မ​စိုက်​သင့်​လား ဆို​တာ​ကို အရင်​ဆုံးဖြတ်​ပါ။ အထူး​အလေး​ပေး ဂရုစိုက်​စရာ​မ​လို​ရင်​လည်း အလေး​ပေး​ဂရု​မ​စိုက်​ပါ​နဲ. ။ ဂရုစိုက်​တိုင်း​ကောင်း​တယ်​လို. ကျွန်တော်မ​မြင်​ပါ ။ ပေါ့​စေ​လိုလို.ကြောင်​ရုပ်​ထိုး​တာ ဆေး​အတွက်​နဲ.လေး​တာ​တွေ ခဏခဏ​ကြုံ​ရ​လို.ပါ။ ဥပမာ - အခု ကို moeko ရေး​မယ့် query ကို ၁ မိ​နစ်​အတွင်း ယူ​ဇာ ဘယ်နှစ်​ယောက်​လောက်​က (သို.မဟုတ်) request ဘယ်လောက်​များ⁠များ​က execute လုပ်​နိုင်​သလဲ ? ဒီ​လို​မျိုး Access များ​တဲ့​အပေါ်​ကို​မူ​တည်​ပြီး performance က ဂရုစိုက်​ရ​ပါ​တယ်။ တစ်​နေ.မှ လေး​ငါး​ခါ​လောက် execute လုပ်​မယ့် query မျိုး​ဆို​လည်း အထူး​အလေး​ပေး​စရာ​မ​လို​ဘူး​လို.ထင်​ပါ​တယ်။ ကျွန်တော်​ဆိုလို​တာ​က MySQL က ပြဌာန်း​ထား​တဲ့ query syntax တွေ​ကို​သုံး​ရင် ဘယ်​ဟာ​ကတော့ performance ကောင်း​စေ​တယ် ဆို​တာ​ထက် ကို​က အဲ့​တာ​ကို ဘယ်​လို​သုံး​လိုက်​သလဲ ဆို​တာ​ကို​ပဲ ဂရုစိုက်​စေ​လို​ပါ​တယ်။

    Thanked by 1 moeko
  • Registered Users
Sign In or Register to comment.