logo

ماي إس كيو إل منطقية

إن القيمة المنطقية هي أبسط أنواع البيانات التي تُرجع دائمًا قيمتين محتملتين، إما صواب أو خطأ. يمكن استخدامه دائمًا للحصول على تأكيد في شكل قيمة نعم أو لا.

لا يحتوي MySQL على نوع بيانات Boolean أو Bool مدمج. أنها توفر أ تاينينت نوع البيانات بدلاً من أنواع البيانات المنطقية أو المنطقية. ماي إس كيو إل اعتبرت القيمة صفر كاذبة والقيمة غير الصفرية صحيحة. إذا كنت تريد استخدام القيم الحرفية المنطقية، فاستخدم صواب أو خطأ الذي يتم تقييمه دائمًا بقيمة 0 و1. يمثل 0 و 1 القيم الصحيحة.

قم بتنفيذ العبارة التالية لرؤية القيم الصحيحة للقيم الحرفية المنطقية:

 Mysql> Select TRUE, FALSE, true, false, True, False; 

وبعد التنفيذ الناجح تظهر النتيجة التالية:

ماي إس كيو إل منطقية

مثال MySQL المنطقي

يمكننا تخزين قيمة منطقية في جدول MySQL كنوع بيانات صحيح. دعونا ننشئ جدولًا للطالب يوضح استخدام نوع البيانات المنطقية في MySQL:

 mysql> CREATE TABLE student ( studentid INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(40) NOT NULL, age VARCHAR(3), pass BOOLEAN ); 

في الاستعلام أعلاه، يمكننا أن نرى أن حقل المرور يتم تعريفه على أنه منطقي عند عرض تعريف الجدول؛ أنه يحتوي على TINIINT على النحو التالي:

supw
 mysql> DESCRIBE student; 

ماي إس كيو إل منطقية

دعونا نضيف صفين جديدين في الجدول أعلاه بمساعدة الاستعلام التالي:

 mysql> INSERT INTO student(name, pass) VALUES('Peter',true), ('John',false); 

عند تنفيذ الاستعلام أعلاه، يقوم MySQL على الفور بالتحقق من نوع البيانات المنطقية في الجدول. إذا تم العثور على القيم الحرفية المنطقية، فسيتم تحويلها إلى قيم صحيحة 0 و1. قم بتنفيذ الاستعلام التالي للحصول على البيانات من جدول الطالب:

 Mysql> SELECT studentid, name, pass FROM student; 

سوف تحصل على الإخراج التالي حيث يتم تحويل القيمة الحقيقية والخطأ إلى قيمة 0 و1.

ماي إس كيو إل منطقية

نظرًا لأن MySQL تستخدم دائمًا TINYINT كقيمة منطقية، فيمكننا أيضًا إدراج أي قيم صحيحة في العمود المنطقي. نفذ العبارة التالية:

 Mysql> INSERT INTO student(name, pass) VALUES('Miller',2); 

سوف تحصل على النتيجة التالية:

ماي إس كيو إل منطقية

في بعض الحالات، تحتاج إلى الحصول على النتيجة بالقيمة الحرفية الصحيحة والخاطئة. في هذه الحالة، تحتاج إلى تنفيذ الدالة if() باستخدام عبارة التحديد كما يلي:

 Mysql> SELECT studentid, name, IF(pass, 'true', 'false') completed FROM student1; 

سوف يعطي الإخراج التالي:

ماي إس كيو إل منطقية

مشغلي MySQL المنطقية

يتيح لنا MySQL أيضًا استخدام عوامل تشغيل من نوع البيانات المنطقية. قم بتنفيذ الاستعلام التالي للحصول على جميع نتائج النجاح الخاصة بطالب الجدول.

 SELECT studentid, name, pass FROM student1 WHERE pass = TRUE; 

يُرجع هذا البيان الإخراج التالي:

ماي إس كيو إل منطقية

العبارة أعلاه تُرجع نتيجة النجاح فقط إذا كانت القيمة تساوي 1. يمكننا إصلاحها باستخدام الأمر يكون المشغل أو العامل. يتحقق عامل التشغيل هذا من صحة القيمة باستخدام القيمة المنطقية. والبيان التالي يوضح ذلك:

 SELECT studentid, name, pass FROM student1 WHERE pass is TRUE; 

بعد تنفيذ هذا البيان ستحصل على النتيجة التالية:

ماي إس كيو إل منطقية

إذا كنت تريد أن ترى النتيجة المعلقة، استخدم هو زائف أو ليس صحيحا المشغل على النحو التالي:

 SELECT studentid, name, pass FROM student1 WHERE pass IS FALSE; OR, SELECT studentid, name, pass FROM student1 WHERE pass IS NOT TRUE; 

سوف تحصل على الإخراج التالي:

ماي إس كيو إل منطقية