12 April 2012

MySQL การใช้เงื่อนไขในการเลือก Diag ที่เป็น ICD10 หรือ ICD9 เท่านั้น

ที่มาของภาพ http://chrissanders.org

ในการเลือก Diagnosis จากตาราง ovstdiag โดยต้องการเลือกเฉพาะ Diagnosis ที่เป็น ICD10  หรือ ICD9 เท่านั้น สามารถทำได้โดยการใช้เงื่อนไขว่า character แรกต้องเป็น หนังสือ (ICD10) ซึ่งทำได้โดยการใช้คำสั่ง REGEXP  '[A-Za-z]'    หรือ เป็นตัวเลข (ICD9)  ซึ่งทำได้โดยการใช้คำสั่ง REGEXP  '[0-9]' เป็นตัวจับ

ตัวอย่าง ICD10


SELECT ov.*,icd101.`code`,icd101.name,dc.`name` as doctorname from ovstdiag ov  
left join doctor dc on ov.doctor = dc.`code`
left join icd101 on ov.icd10 = icd101.`code` where vn = '550101080140' and left(icd103,1) REGEXP '[A-Za-z]'   order by diagtype

ตัวอย่าง ICD9

SELECT ov.*,icd9cm1.`code`,icd9cm1.name,dc.`name` as doctorname from ovstdiag ov  
left join doctor dc on ov.doctor = dc.`code`
left join icd9cm1 on ov.icd103 = icd9cm1.`code` where vn = '550101080140' and left(icd103,1) REGEXP '[0-9]'   order by diagtype



คำสั่ง REGEXP ชื่อเต็มคือ Regular Expression คำอธิบาย : http://dev.mysql.com/doc/refman/5.1/en/regexp.html




ที่มา 
ตัวอย่างที่ใช้ศึกษา : http://stackoverflow.com/questions/1471523/select-only-rows-that-contain-only-alphanumeric-characters-in-mysql

No comments: