สตริง SQL เท่ากับ

String Sql Theakab



การดำเนินการสตริงเป็นงานที่พบบ่อยที่สุดและเกิดขึ้นเป็นประจำในการพัฒนาโลก แม้ว่าจะเป็นเรื่องของฐานข้อมูล งานต่างๆ เช่น การเปรียบเทียบสตริง ก็มีบทบาทสำคัญในการกรองข้อมูลและการค้นหาบันทึกที่ตรงกัน

ไม่ว่าการค้นหาระเบียนที่เฉพาะเจาะจง การกรองข้อมูล หรือการดำเนินการจัดการข้อมูลต่างๆ การทำความเข้าใจว่า SQL จัดการกับสตริงที่เท่ากันนั้นมีความสำคัญอย่างไร

ในคู่มือนี้ เราจะเจาะลึกสตริง SQL ที่เท่ากับ โดยดูที่ไวยากรณ์ที่รองรับ การใช้งาน และตัวอย่างต่างๆ เพื่อความเข้าใจที่ดีขึ้น







สตริง SQL เท่ากับไวยากรณ์

มีหลายวิธีที่คุณสามารถดำเนินการกรองสตริงได้ อย่างไรก็ตาม หนึ่งในเทคนิคที่ใช้บ่อยและง่ายที่สุดคือการใช้ WHERE clause



ต่อไปนี้จะแสดงไวยากรณ์ของประโยค:



เลือกคอลัมน์ 1, คอลัมน์ 2, ...
จาก table_name
โดยที่ column_name = 'ค่า';

ในกรณีนี้ “column_name” แสดงถึงคอลัมน์ที่เราต้องการเปรียบเทียบ ในขณะที่ค่าหมายถึงสตริงลิเทอรัลที่เราต้องการเปรียบเทียบด้วย





สิ่งนี้ใช้ตัวดำเนินการความเท่าเทียมกันซึ่งจะตรวจสอบว่าสตริงที่ให้มาเท่ากันหรือไม่

ข้อมูลตัวอย่าง

ก่อนที่เราจะเจาะลึกการใช้งาน ให้เราจัดทำตารางตัวอย่างพื้นฐานที่ช่วยให้เราสามารถสาธิตการใช้งานได้ในทางปฏิบัติมากขึ้น



พิจารณาตารางตัวอย่างและข้อมูลตัวอย่างดังแสดงต่อไปนี้:

สร้างพนักงานตาราง (
Employee_id INT คีย์หลัก AUTO_INCREMENT,
Employee_name VARCHAR (100)
department_id INT
-


INSERT INTO พนักงาน (employee_name, department_id) ค่า
('เฟลป์ส เดน', 101),
('อลานา แอล', 102),
('อี จอห์นสัน', 103),
('ดาเนียล บี', 104),
('เบรกเดวิส', 105),
('เจสสิก้า วิลสัน', 106),
('ดาเนียล การ์เซีย', 107),
('คาเรน มาร์ติเนซ', 108),
('แอนโธนี โรบินสัน', 109),
('โซเฟีย คลาร์ก', 110);

สิ่งนี้ควรสร้างตารางและเพิ่มบันทึกตัวอย่างลงในตาราง

ตัวอย่างที่ 1: การใช้งานพื้นฐาน

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

เลือก *
จากพนักงาน
WHERE Employee_name = 'คาเรน มาร์ติเนซ';

ในแบบสอบถามที่กำหนด เราเลือกคอลัมน์ทั้งหมดจากตาราง 'employees' โดยที่คอลัมน์ 'employee_name' เท่ากับ 'Karen Martinez'

ผลลัพธ์ที่ได้จะเป็นดังนี้:

Employee_id|ชื่อพนักงาน |แผนก_id|
-
8|คาเรน มาร์ติเนซ| 108 |

ตัวอย่างที่ 2: การเปรียบเทียบสตริงที่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่

แม้ว่าสิ่งนี้อาจขึ้นอยู่กับระบบฐานข้อมูล โดยค่าเริ่มต้น การเปรียบเทียบสตริงในระบบฐานข้อมูลส่วนใหญ่จะคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่

หากต้องการบังคับให้ฐานข้อมูลทำการเปรียบเทียบแบบคำนึงถึงขนาดตัวพิมพ์อย่างชัดเจน คุณสามารถใช้คีย์เวิร์ด BINARY ได้ดังนี้:

เลือก *
จากพนักงาน
WHERE BINARY Employee_name = 'คาเรน มาร์ติเนซ';

ในกรณีนี้ เนื่องจากสตริงที่ให้มามี M ตัวพิมพ์เล็กในชื่อ Martinez ฐานข้อมูลจึงจะถือว่าสตริงนั้นเป็นสตริงอื่น จึงไม่มีผลอะไร

ตัวอย่างที่ 3: การใช้อักขระตัวแทน

ในบางกรณี เราอาจต้องการตรวจสอบความเท่าเทียมกันของสตริงโดยใช้อักขระตัวแทน ซึ่งจะจับคู่สตริงที่ตรงกับรูปแบบเฉพาะ แทนที่จะเป็นสตริงลิเทอรัลเดี่ยว

สิ่งนี้สามารถช่วยให้เกิดความยืดหยุ่นในการค้นหาโดยไม่ทำให้กลไกฐานข้อมูลล้นหลาม

ตัวอย่างเช่น เราสามารถใช้ไวด์การ์ด เช่น “%” (จับคู่ลำดับอักขระใดก็ได้) และ “_” (จับคู่อักขระตัวเดียว) ร่วมกับสตริงเท่ากับ

ให้เราดูตัวอย่างดังต่อไปนี้:

เลือก *
จากพนักงานจ
โดยที่ชื่อพนักงานเช่น 'A%';

แบบสอบถามนี้จะดึงข้อมูลพนักงานทั้งหมดที่มีชื่อขึ้นต้นด้วยตัวอักษร “A”

ตัวอย่างที่ 4: Escape อักขระพิเศษ

ในกรณีที่คุณต้องการค้นหาอักขระบางตัวโดยเป็นส่วนหนึ่งของสตริง คุณจะต้องหลีกเลี่ยงอักขระเหล่านั้นเมื่อใช้อักขระเหล่านั้นในสตริงเท่ากับ

ตัวอย่างเช่น หากคุณต้องการค้นหาอักขระ เช่น แบ็กสแลชหรือเครื่องหมายคำพูดเดี่ยวเป็นส่วนหนึ่งของสตริง คุณจะต้องหลีกเลี่ยงอักขระดังกล่าวดังนี้:

เลือก *
จากผลิตภัณฑ์
WHERE product_name = 'แอปเปิ้ลหวาน';

ในกรณีนี้ เราใช้แบ็กสแลชเพื่อหลีกเครื่องหมายคำพูดเดี่ยวภายในสตริง

หากต้องการหลีกเลี่ยงแบ็กสแลช คุณสามารถใช้แบ็กสแลชคู่ได้ดังนี้:

เลือก *
จากผลิตภัณฑ์
โดยที่ product_name = 'หวาน\\ แอปเปิ้ล';

ซึ่งควรรวมเครื่องหมายแบ็กสแลชไว้ในสตริงลิเทอรัล

บทสรุป

ในบทช่วยสอนนี้ เราได้เรียนรู้เกี่ยวกับการดำเนินการสตริงที่พบบ่อยและมีประโยชน์มากที่สุดอย่างหนึ่งในฐานข้อมูล ซึ่งก็คือการเปรียบเทียบความเท่าเทียมกันของสตริง เราเรียนรู้ไวยากรณ์และการใช้งานของโอเปอเรเตอร์ต่างๆ เพื่อเปรียบเทียบสตริง