Select by Attribute ด้วยคำสั่ง LIKE

ในการ query ข้อมูลที่เป็นตัวอักษรใน attribute ที่มีหลายๆ record บางครั้งก็ชวนให้ปวดหัวได้เหมือนกันนะครับ

ถ้าเป็นตัวอักษรที่มีหลายๆ อักขระ แล้วเราจำไม่ได้ว่าคำเต็มมันเก็บไว้ใน attribute ว่าอะไรบ้าง

ซึ่งรูปแบบคำสั่ง ที่เรามักใช้เบื้องต้นเลยคือ  “ชื่อ field” = ‘คำที่ค้น’

2016-03-18_15-24-53

จากรูปสมมติถ้าผมต้องการ select HIGHWAY 1 ขึ้นมา ผมต้อง พิมพ์  “RDLNNAME” = ‘HIGHWAY 1’

ถ้าเราพิมพ์ผิดจะค้นหาไม่พบผลลัพธ์นะครับ  แล้วถ้าสมมติเราต้องการค้นหา HIGHWAY ที่ขึ้นต้นด้วยเลข 1 ละทำไง

จะให้ใช้เครื่องหมาย = ก็คงไม่ใช่แล้วละ    การแก้ปัญหาโดยการใช้  LIKE แทน เครื่องหมาย =

2016-03-18_15-33-41

รูปแบบคำสั่ง จะเป็น “RDLNNAME” like ‘HIGHWAY 1{8645ed30ebfee2716765f004cf3f74a8c4ef5e59d5d4d4ef1cf40763c4bdb1fe}’   คือ  คำที่ขึ้นต้นด้วย HIGHWAY 1   จะโดนเลือกมาทั้งหมด

โดยเราจะใช้เครื่องหมาย{8645ed30ebfee2716765f004cf3f74a8c4ef5e59d5d4d4ef1cf40763c4bdb1fe} แทนคำอะไรก็ได้ที่ตามหลัง HIGHWAY 1 มาจะโดนเลือกทั้งหมด

แต่ก็มีปัญหาอีกคือ สมมติใน attribute อาจจะมีการพิมพ์ผิดก่อนหน้า  HIGHWAY 1 อาจจะมีการเคาะ spacebar ก่อนพิมพ์

กลายเป็นมีช่องว่างนำหน้าอยู่  เราก็จะค้นหาไม่เจอเนื่องจากใน record ไม่ได้ขึ้นต้นด้วย HIGHWAY 1

2016-03-18_15-41-251

วิธีการทำไง ให้ใช้เครื่องหมาย {8645ed30ebfee2716765f004cf3f74a8c4ef5e59d5d4d4ef1cf40763c4bdb1fe} นำหน้า HIGHWAY 1 ไปอีก 1 ตัว ที่นี้ไม่ว่าHIGHWAY 1 จะอยู่ตรงไหนของประโยคก็จะโดนเลือกมาเหมือนกัน

2016-03-18_15-44-37

กรณีที่เราต้องการบังคับจะเลือกตำแหน่งตัวอักขระที่เราต้องการ

วิธีการคือให้ใช้เครื่องหมาย underscore “_” แทนตำแหน่งที่เราต้องการข้ามไป เช่นถ้าต้องการ select record ที่มีตัว G อยู่ อักขระที่ 3 ก็ใช้   _  นำหน้า 2 ตัว ดังรูป

record ที่เข้าเงื่อนไขก็จะโดนเลือก HIGHWAY 1 อีก record ที่ไม่โดนเลือกเพราะมีตัว G อยู่ในตำแหน่งอักขระที่ 4 (อักขระที่ 1 = space, 2 = H , 3 = I, 4 = G,…)

2016-03-18_15-49-29

 

ความแตกต่าง ของ {8645ed30ebfee2716765f004cf3f74a8c4ef5e59d5d4d4ef1cf40763c4bdb1fe} และ _ คือ {8645ed30ebfee2716765f004cf3f74a8c4ef5e59d5d4d4ef1cf40763c4bdb1fe} จะใช้แทนอักขระ คำ กลุ่มคำที่มีหลายๆ อักขระ แต่ _ ใช้แทน อักขระเพียง 1 ตัวเท่านั้น

ลองนำไปประยุกต์ใช้งานดูนะครับ

ที่มา : geo2ass.wordpress.com

 

Copyright © 2018 LEARN : อาณาจักรภูมิสารสนเทศ อาณาเขตแห่งการเรียนรู้

LEARN