หน้าเว็บ

วันพุธที่ 5 สิงหาคม พ.ศ. 2552

Operator "LIKE" in SQL

Query : การใช้ Like

การใช้ LIKE

Like เป็น Operator ที่ใช้ในการเปรียบเทียบข้อมูลประเภทตัวอักษร โดยมีอักขระพิเศษ(Wildcard Characters)ในการเปรียบเทียบ ดังนี้

อักขระพิเศษ ความหมาย
? ตัวอักขระใด ๆ จำนวน 1 ตัว
* ตัวอักขระใด ๆ จำนวนเท่าใดก็ได้
[] ตัวอักขระใด 1 ตัวที่อยู่ในช่วง เช่น w[a-c]x
ค่าที่ได้คือ wax, wbx wcx
[!] ตัวอักขระใด 1 ตัวที่ไม่อยู่ในช่วง เช่น w[!a-c]x
ค่าที่ยกเว้นคือ wax, wbx wcx
& ใช้เชื่อมข้อความ

ตัวอย่างที่ 1 การค้นหาผู้ป่วยที่มีชื่อขึ้นต้นด้วย จ แล้วตามด้วยตัวอักษรอะไรก็ได้ 2 ตัว

Select *
From tbl_pt
Where fname LIKE "จ??";

(1) เขียน SQL เพื่อเรียกดูข้อมูลตามโจทย์ตัวอย่างที่ 1

รูปที่ 2

(2) ทดสอบ SQL ตามรูปที่ 2 ได้ผลลัพธ์ฺดังนี้

รูปที่ 3

ตัวอย่างที่ 2 การค้นหาผู้ป่วยที่มีชื่อลงท้ายด้วย ต และจะมีึตัวอักษรอะไรขึ้นต้นก็ได้ จำนวน 2 ตัว

Select *
From tbl_pt
Where fname LIKE "??ต";

(1) เขียน SQL เพื่อเรียกดูข้อมูลตามโจทย์ตัวอย่างที่ 2

รูปที่ 4

(2) ทดสอบ SQL ตามรูปที่ 4 ได้ผลลัพธ์ฺดังนี้

รูปที่ 5

ตัวอย่างที่ 3 การค้นหาผู้ป่วยที่มีชื่อขึ้นต้นด้วย ก แล้วตามด้วยตัวอักษรอะไรก็ได้ กี่ตัวก็ได้

Select *
From tbl_pt
Where fname LIKE "ก*";

(1) เขียน SQL เพื่อเรียกดูข้อมูลตามโจทย์ตัวอย่างที่ 3

รูปที่ 6

(2) ทดสอบ SQL ตามรูปที่ 6 ได้ผลลัพธ์ฺดังนี้

รูปที่ 7

ตัวอย่างที่ 4 การค้นหาผู้ป่วยที่ชื่อมีตัวอักษรลงท้าย น และจะมีตัวอักษรอะไรขึ้นต้นก็ได้ จำนวนกี่ตัวก็ได้

Select *
From tbl_pt
Where fname LIKE "*น";

(1) เขียน SQL เพื่อเรียกดูข้อมูลตามโจทย์ตัวอย่างที่ 4

รูปที่ 8

(2) ทดสอบ SQL ตามรูปที่ 8 ได้ผลลัพธ์ฺดังนี้

รูปที่ 9

ตัวอย่างที่ 5 การค้นหาผู้ป่วยที่ชื่อมีตัวอักษรตัวแรกเป็น น และจะมีตัวอักษรอะไรตามมาก็ได้ จำนวนกี่ตัวก็ได้

Select *
From tbl_pt
Where fname LIKE "*";

(1) เขียน SQL เพื่อเรียกดูข้อมูลตามโจทย์ตัวอย่างที่ 5

รูปที่ 10

(2) ทดสอบ SQL ตามรูปที่ 10 ได้ผลลัพธ์ฺดังนี้

รูปที่ 11

ตัวอย่างที่ 6 การค้นหาผู้ป่วยที่ผู้ใช้ทราบแต่เพียงบางส่วนของชื่อ

Select *
From tbl_pt
Where fname LIKE "*"&[โปรดระบุชื่อหรือบางส่วนของชื่อ]&"*";

(1) เขียน SQL เพื่อเรียกดูข้อมูลตามโจทย์ตัวอย่างที่ 6

รูปที่ 12

(2) ทดสอบ SQL ตามรูปที่ 12 จะปรากฎ Input Box ตามรูปที่ 13 ให้คุณกรอกตัวอักษรลงไป ซึ่งคุณอาจใส่เพียงตัวอักษรตัวเดียว หรือหลายตัวก็ได้

รูปที่ 13

(3) กรอกตัวอักษร เข้าไปใน Input Box แล้วคลิก OK ตามรูปที่ 14

รูปที่ 14

(4) จากรูปที่ 14 มีผลลัพธ์การเรียกดูข้อมูลตามรูปที่ 15 ดังนี้

รูปที่ 15

ตัวอย่างที่ 7 ประยุกต์ใช้ [] ในคำสั่ง SQL อื่น ๆ

สำหรับ [ ] สามารถนำไปประยุกต์ใช้ได้มากหรือหลายหลายรูปแบบ เช่น ทดลองใช้กับ การใช้ BETWEEN... AND ซึ่งได้เสนอไว้แล้ว

เช่น ต้องการทราบข้อมูลรายชื่อผู้ป่วยที่มีอายุระหว่าง 20-35 ปี หรือช่วงอายุอื่น ๆ โดยเมื่อใช้งานจะมี Input Box ปรากฎออกมาให้คุณใส่ข้อมูล

จากคำสั่ง SQL
Select fname, lname, age
From tbl_pt
Where age BETWEEN 20 AND 35;

เขียนใหม่ โดยใช้ [] เป็น
Select fname, lname, age
From tbl_pt
Where age BETWEEN [โปรดระบุอายุเริ่มต้น] AND [โปรดระบุอายุมากที่สุด];

สำหรับคำหรือตัวอักษรในวงเล็บก้ามปู จะใช้อย่างไรก็ได้ซึ่งไม่มีผลต่อการทำงานของโปรแกรม

(1) เขียน SQL เพื่อเรียกดูข้อมูลตามโจทย์ตัวอย่างที่ 7

รูปที่ 16

(2) ทดสอบ SQL ตามรูปที่ 16 จะปรากฎ Input Box ตามรูปที่ 17 ให้คุณกรอกตัวอายุเริ่มต้นค้นหาลงไป ในที่นี้ใส่เลข 20 แล้วคลิก OK

รูปที่ 17

(3) จากนั้นจะปรากฎ Input Box ตามรูปที่ 18 ให้กรอกตัวเลขอายุที่มากที่สุดเข้าไป ในที่นี้กรอกตัวเลข 45 เข้าไปแล้วคลิก OK

รูปที่ 18

(4) ผลลัพธ์จากรูปที่ 19 มีดังนี้

รูปที่ 19


Thanks : sakdapl

ไม่มีความคิดเห็น: