سؤال

مرحبًا، أنا أستخدم السبات وMysql.لدي فئة ذات سمة منطقية تسمى "نشطة".

يحتوي جدول قاعدة البيانات الذي تم إنشاؤه على نوع بيانات BIT.حتى الان جيدة جدا.أريد الاستعلام عن هذه القيمة ولكني لا أعرف كيفية القيام بذلك.لقد حاولت

 SELECT * from table where active = 1

لا يعمل، ولا ما يلي

 SELECT * from table where active = true

لم أجد أي شيء لا في الدليل المرجعي ولا في Stackoveflow.

أي تلميح؟

شكرا لك مقدما!

هل كانت مفيدة؟

المحلول

SELECT * FROM table WHERE active = (1)

نصائح أخرى

وفق هذه الصفحة, ، BIT هو مرادف لـ TINYINT(1) للإصدارات قبل 5.0.3.

هل حاولت هذه؟

SELECT * from table where active = (1)
SELECT * from table where active = 'true'
SELECT * from table where active = b'1'

هذا دخول بلوق يقترح تجنب نوع بيانات BIT تمامًا.

لتحديد قيم بعض الشيء، b'value تدوين "يمكن استخدامها.

هل حاولت الصب إلى عدد صحيح للمقارنة

SELECT * from table where cast(active as unsigned) = 1

ويمكنني استخدام MS SQL أكثر من مرة حتى يغفر لي إذا لم تنجح هذه الطريقة وأنا لا يمكن اختباره.

والواقع الخلية وقد بنيت في الحرفية بت:

select*from table where active = 0b1

حسنا، بالنسبة لكل من المقارنات والتحديثات، 0 و 1 العمل بالنسبة لي:

وهنا حقل نوع بت (1)، صف واحد، والحقل هو كاذب حاليا:

mysql> select isfeatured from nodes where isfeatured = 1;
Empty set (0.00 sec)

mysql> select isfeatured from nodes where isfeatured = 0;
+------------+
| isfeatured |
+------------+
|            |
+------------+
1 row in set (0.00 sec)

وتحديث تتغير 0-1 في isfeatured، وهو نوع بت (1) ...

mysql> update nodes set isfeatured=1 where isfeatured = 0;
Query OK, 1 row affected (0.05 sec)
Rows matched: 1  Changed: 1  Warnings: 0

وتغير صف واحد ... حاول مرة أخرى:

mysql> update nodes set isfeatured=1 where isfeatured = 0;
Query OK, 0 rows affected (0.00 sec)
Rows matched: 0  Changed: 0  Warnings: 0

وتغيرت لا الصفوف كما هو متوقع.

واختر الاستفسارات نفسه كما كان من قبل:

mysql> select isfeatured from nodes where isfeatured = 1;
+------------+
| isfeatured |
+------------+
|           |
+------------+
1 row in set (0.00 sec)

mysql> select isfeatured from nodes where isfeatured = 0;
Empty set (0.01 sec)

وانظر، وأنها تعمل.

وأنا باستخدام:

وماي فير 14.14 DISTRIB 5.5.31، لديبيان لينكس، جنو (x86_64) استخدام Readline 6.2

و

و/ البيرة / دليل / mysqld الإصدار 5.5.31-0 + wheezy1 لديبيان لينكس، جنو على x86_64 ((ديبيان))

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top