PostgreSQL ชอบ, ไม่ชอบ, ไวด์การ์ด (%, _ ) ตัวอย่าง


เค้ก PostgreSQL ตัวดำเนินการ LIKE ช่วยให้เราจับคู่ค่าข้อความกับรูปแบบโดยใช้ไวด์การ์ดได้ นอกจากนี้ยังสามารถจับคู่นิพจน์การค้นหากับนิพจน์รูปแบบได้อีกด้วย

หากเกิดการจับคู่ ตัวดำเนินการ LIKE จะส่งคืนค่าเป็นจริง ด้วยความช่วยเหลือของตัวดำเนินการ LIKE จึงสามารถใช้ไวด์การ์ดในคำสั่ง WHERE ของ SELECT, UPDATE, INSERT หรือ DELETE ได้

ไวลด์การ์ด

มีเพียงสองไวด์การ์ดเท่านั้นที่สามารถใช้ร่วมกับได้

  • เครื่องหมายเปอร์เซ็นต์ (%)
  • ขีดเส้นใต้ (_)

เครื่องหมายเปอร์เซ็นต์ (%) ใช้แทนอักขระหรือตัวเลขเป็นศูนย์ หนึ่งตัว หรือหลายตัว

สัญลักษณ์ตัวแทนเครื่องหมายขีดล่าง (_) ใช้แทนอักขระหรือตัวเลขหนึ่งตัว สัญลักษณ์เหล่านี้สามารถรวมกันได้ หากไม่ใช้ตัวดำเนินการ LIKE ร่วมกับเครื่องหมายทั้งสองนี้ ตัวดำเนินการจะทำหน้าที่เหมือนกับตัวดำเนินการเท่ากับ

วากยสัมพันธ์

นี่คือรูปแบบทางไวยากรณ์สำหรับตัวดำเนินการ LIKE:

expression LIKE pattern [ ESCAPE 'escape-character' ]

นิพจน์คือนิพจน์อักขระเช่นคอลัมน์หรือฟิลด์

รูปแบบคือการแสดงออกของตัวละครที่มีการจับคู่รูปแบบ

อักขระหลีกเป็นพารามิเตอร์ทางเลือก ช่วยให้สามารถทดสอบอินสแตนซ์ตามตัวอักษรของอักขระตัวแทนเช่น % และ _ หากไม่มีการระบุ \ จะถูกใช้เป็นอักขระหลีก

การใช้ % ไวด์การ์ด

ดังที่เราได้ระบุไว้ก่อนหน้านี้ เครื่องหมาย % จะตรงกับเลขศูนย์ หนึ่งตัวหรือมากกว่า หรือตัวเลข พิจารณาตารางต่อไปนี้:

หนังสือ:

การใช้ % ไวด์การ์ด

เราต้องการให้หนังสือที่ชื่อ “Lear…” ได้รับผลลัพธ์ดังกล่าว เราสามารถรันคำสั่งดังต่อไปนี้:

SELECT *
FROM
   Book
WHERE
   name LIKE 'Lear%';

สิ่งนี้จะส่งคืนสิ่งต่อไปนี้:

การใช้ % ไวด์การ์ด

พบหนังสือแล้ว

ให้เราค้นหาหนังสือ “โดย” ในชื่อของมัน:

SELECT *
FROM
   Book
WHERE
   name LIKE '%by%';

สิ่งนี้จะส่งคืนสิ่งต่อไปนี้:

การใช้ % ไวด์การ์ด

ใช้ _ ไวด์การ์ด

ตามที่เราระบุไว้ก่อนหน้านี้ เครื่องหมาย _ แสดงถึงอักขระหรือตัวเลขหนึ่งตัว สามารถใช้งานได้ตามที่แสดงด้านล่าง:

SELECT *
FROM
   Book
WHERE
   name LIKE '_earn%';

สิ่งนี้ส่งคืนสิ่งต่อไปนี้:

ใช้ _ ไวด์การ์ด

นี่เป็นอีกตัวอย่างหนึ่ง:

SELECT *
FROM
   Book
WHERE
   name LIKE '%Beginner_';

สิ่งนี้ส่งคืนสิ่งต่อไปนี้:

ใช้ _ ไวด์การ์ด

การใช้ไม่ OperaTor

เมื่อตัวดำเนินการ LIKE รวมกับตัวดำเนินการ NOT แถวใดๆ ที่ไม่ตรงกับรูปแบบการค้นหาจะถูกส่งกลับ ตัวอย่างเช่น หากต้องการดูหนังสือที่มีชื่อไม่ได้ขึ้นต้นด้วย "post" เราสามารถรันคำสั่งต่อไปนี้:

SELECT *
FROM
   Book
WHERE
  name NOT LIKE 'Post%';

สิ่งนี้ส่งคืนสิ่งต่อไปนี้:

การใช้ไม่ OperaTor

มีหนังสือเล่มเดียวเท่านั้นที่ตรงตามเงื่อนไขการค้นหา มาดูรายชื่อหนังสือที่ไม่มีคำว่า Made กัน:

SELECT *
FROM
   Book
WHERE
  name NOT LIKE '%Made%';

สิ่งนี้ส่งคืนสิ่งต่อไปนี้:

การใช้ไม่ OperaTor

3 แถวตรงตามเงื่อนไขการค้นหา

การใช้งาน pgAdmin

ตอนนี้เรามาดูกันว่าการดำเนินการสามารถทำได้โดยใช้ pgAdmin อย่างไร

การใช้ % ไวด์การ์ด

ขั้นตอน 1) เข้าสู่ระบบบัญชี pgAdmin ของคุณ

ขั้นตอน 2)

  1. จากแถบนำทางทางด้านซ้ายให้คลิกฐานข้อมูล
  2. คลิกสาธิต

การใช้ pgAdmin ด้วย % wildcard

ขั้นตอน 3) พิมพ์แบบสอบถามในตัวแก้ไขแบบสอบถาม:

SELECT *
FROM
   Book
WHERE
   name LIKE 'Lear%';

ขั้นตอน 4) คลิกปุ่มดำเนินการ

การใช้ pgAdmin ด้วย % wildcard

ควรส่งคืนสิ่งต่อไปนี้:

การใช้ pgAdmin ด้วย % wildcard

หากต้องการค้นหาหนังสือ “โดย” ในชื่อ:

ขั้นตอน 1) พิมพ์คำสั่งต่อไปนี้ในตัวแก้ไขแบบสอบถาม:

SELECT *
FROM
   Book
WHERE
   name LIKE '%by%';

ขั้นตอน 2) คลิกปุ่มดำเนินการ

การใช้ pgAdmin ด้วย % wildcard

ควรส่งคืนสิ่งต่อไปนี้:

การใช้ pgAdmin ด้วย % wildcard

ใช้ _ ไวด์การ์ด

ขั้นตอน 1) เข้าสู่ระบบบัญชี pgAdmin ของคุณ

ขั้นตอน 2)

  1. จากแถบนำทางทางด้านซ้ายให้คลิกฐานข้อมูล
  2. คลิกสาธิต

ใช้ pgAdmin ด้วย _ wildcard

ขั้นตอน 3) พิมพ์แบบสอบถามในตัวแก้ไขแบบสอบถาม:

SELECT *
FROM
   Book
WHERE
   name LIKE '_earn%';

ขั้นตอน 4) คลิกปุ่มดำเนินการ

ใช้ pgAdmin ด้วย _ wildcard

ควรส่งคืนสิ่งต่อไปนี้:

ใช้ pgAdmin ด้วย _ wildcard

ขั้นตอน 5) หากต้องการรันตัวอย่างที่สอง:

  1. พิมพ์แบบสอบถามต่อไปนี้ในตัวแก้ไขแบบสอบถาม:
    SELECT *
    FROM
       Book
    WHERE
       name LIKE '%Beginner_';
    
  2. คลิกปุ่มดำเนินการ

ใช้ pgAdmin ด้วย _ wildcard

ควรส่งคืนสิ่งต่อไปนี้:

ใช้ pgAdmin ด้วย _ wildcard

การใช้ไม่ OperaTor

ขั้นตอน 1) เข้าสู่ระบบบัญชี pgAdmin ของคุณ

ขั้นตอน 2)

  1. จากแถบนำทางทางด้านซ้ายให้คลิกฐานข้อมูล
  2. คลิกสาธิต

การใช้ไม่ Operaทอร์ใน pgAdmin

ขั้นตอน 3) หากต้องการดูหนังสือทั้งหมดที่มีชื่อไม่ได้ขึ้นต้นด้วย "โพสต์" ให้พิมพ์คำค้นหาในตัวแก้ไขคำค้นหา:

SELECT *
FROM
   Book
WHERE
  name NOT LIKE 'Post%';

ขั้นตอน 4) คลิกปุ่มดำเนินการ

การใช้ไม่ Operaทอร์ใน pgAdmin

ควรส่งคืนสิ่งต่อไปนี้:

การใช้ไม่ Operaทอร์ใน pgAdmin

การใช้ไม่ Operaทอร์ใน pgAdmin

หากต้องการดูรายชื่อหนังสือที่มีชื่อไม่มีคำว่า "Made" ให้ทำดังนี้

ขั้นตอน 1) พิมพ์แบบสอบถามต่อไปนี้ในตัวแก้ไขแบบสอบถาม:

SELECT *
FROM
   Book
WHERE
  name NOT LIKE '%Made%';

ขั้นตอน 2) คลิกปุ่มดำเนินการ

การใช้ไม่ Operaทอร์ใน pgAdmin

ควรส่งคืนสิ่งต่อไปนี้:

การใช้ไม่ Operaทอร์ใน pgAdmin

สรุป

  • เค้ก PostgreSQL LIKE ใช้ในการจับคู่ค่าข้อความกับรูปแบบโดยใช้ไวด์การ์ด
  • ส่วนคำสั่ง LIKE อนุญาตให้เราใช้ไวด์การ์ดได้ SELECT, UPDATE, INSERT หรือคำสั่ง DELETE
  • ไวลด์การ์ด % จะตรงกับค่าหนึ่งค่าขึ้นไป ค่าอาจเป็นตัวเลขหรืออักขระก็ได้
  • _ wildcard ตรงกับค่าเดียวเท่านั้น ค่าอาจเป็นอักขระหรือตัวเลขก็ได้
  • สามารถรวมตัวดำเนินการ LIKE เข้ากับตัวดำเนินการ NOT เพื่อส่งคืนแถวใดๆ ที่ไม่ตรงกับรูปแบบการค้นหา

ดาวน์โหลดฐานข้อมูลที่ใช้ในบทช่วยสอนนี้