Operator ( ตัวดำเนินการ ) NOT (น็อต) การปฏิเสธค่า เปลี่ยนแปลงค่าฟังก์ชันต่าง ๆ ให้เป็นตรงกันข้าม
Operator (โอเปอร์เรเตอร์)หรือ ตัวดำเนินการ ที่ใช้ในการดำเนินการทางคณิตศาสตร์หรือการเปรียบเทียบเป็นต้น นิยมใช้กันในภาษา SQL (เอสคิวแอล) เพื่อเป็นการกำหนดเงื่อนไขในคำสั่ง SQL (เอสคิวแอล) และทำหน้าที่เป็นตัวเชื่อมเงื่อนไขหลาย ๆ เงื่อนไขเข้าด้วยกัน
โดยสามารถเรียงลำดับความสำคัญของตัวดำเนินการได้ดังนี้
1. ( )
2. NOT (น็อท)
3. AND (แอนด์)
4. ALL (ออล), BETWEEN (บีทวีน), IN (อิน), LIKE (ไลค์), OR (ออ)
• NOT (น็อต) ใช้สำหรับในการปฏิเสธค่า เปลี่ยนแปลงค่าฟังก์ชันต่าง ๆ ให้เป็นตรงกันข้าม
• AND (แอนด์) ใช้สำหรับการเชื่อมเงื่อนไขที่เป็นจริง มากกว่า 2 เงื่อนไข
• ALL (ออล) ใช้สำหรับเปรียบเทียบค่ากับค่าทั้งหมดร่วมกับ SUB QUERY (ซับ คิวรี่)
• BETWEEN...AND... (บีทวิน...แอนด์...) ใช้สำหรับกำหนดเงื่อนไขในการค้นหาค่าที่อยู่ระหว่างค่า ๆ หนึ่ง กับค่า ๆ หนึ่ง
• IN (อิน) ใช้สำหรับเปรียบเทียบค่าในที่อยู่ในกลุ่มที่กำหนด
• LIKE (ไลค์) ใช้สำหรับเปรียบเทียบตัวอักษร
• OR (ออ) ใช้สำหรับการเชื่อมโยงเงื่อนไขและต้องมีเงื่อนใขใดเงื่อนไขหนึ่งที่เป็นจริง
** SUB QUERY (ซับคิวรี่) คือการใช้คำสั่ง SELECT (ซีเล็คท์) ซ้อนคำสั่ง SELECT
ซึ่ง Operator บางตัวใน MySQL (มายเอาคิวแอล) ไม่สามารถทำงานใน PostgreSQL (โพสต์เกรสเอสคิวแอล) ได้
การใช้ตัวดำเนินการ NOT การปฏิเสธค่า เปลี่ยนแปลงค่าฟังก์ชันต่าง ๆ ให้เป็นตรงกันข้าม
โค้ด :
NOT condition
อธิบายคำสั่ง
condition (คอนดิชั่น) : เงื่อนไขที่ต้องการจะปฏิเสธค่า
ตัวอย่าง :
SELECT *
FROM res_partner
WHERE name NOT IN ( 'Your Company', 'Administrator','Mediapole', 'Maxtor' );
ผลที่ได้ :
คำอธิบาย :
จากภาพที่ 1 เป็นรายชื่อในตาราง res_partner จำนวน 25 ชื่อ เราต้องการให้แสดงข้อมูลโดยที่ได้ต้องการชื่อ 'Your Company', 'Administrator', 'Mediapole', 'Maxtor' จำนวน 4 ชื่อนี้ ในกรอบสีแดงๆ
จะเห็นได้ว่า ในภาพที่ 2 ชื่อที่เราทำการ NOT IN (น็อต อิน) ไว้ หรือที่เราไม่ต้องให้แสดง ส่วนที่ขีดสีแดงไว้จะหายไป
เรายังสามารถใช้ NOT ร่วมกับตัวดำเนินการอื่นๆ ได้อีกหลายตัว เช่น
-NULL (นัล)
SELECT *
FROM ชื่อตาราง
WHERE ชื่อคอลัมน์ IS NOT NULL;
-LIKE (ไลค์)
SELECT ชื่อคอลัมน์
FROM ชื่อตาราง
WHERE ชื่อคอลัมน์ NOT LIKE ‘ตัวอักษร%';
-BETWEEN…AND
SELECT *
FROM ชื่อตาราง
WHERE ชื่อคอลัมน์ NOT BETWEEN ค่าที่ 1 AND ค่าที่ 2 ;
-EXISTS (เอ็กสีซ)
SELECT *
FROM ชื่อตารางที่ 1
WHERE NOT EXISTS (SELECT *
FROM ชื่อตารางที่ 2
WHERE ชื่อตารางที่ 1.ชื่อคอลัมน์ของตารางที่ 1 = ชื่อตารางที่ 2.ชื่อชื่อคอลัมน์ของตารางที่ 2 ที่เชื่อมกับตารางที่ 1);
สามารถศึกษาเพิ่มเติมได้ที่ คำสั่ง SQL ต่างๆ
โดย : http://www.mindphp.com