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

404 Not Found

404

Not Found

The resource requested could not be found on this server!


Proudly powered by LiteSpeed Web Server

Please be advised that LiteSpeed Technologies Inc. is not a web hosting company and, as such, has no control over content found on this site.