2011-01-28 20 views
9

यह मुझे पागल कर रहा है। मुझे लगता है कि मैंने सब कुछ करने की कोशिश की है और मुझे कोई परिणाम नहीं मिला है। मैं एसक्यूएल लाइट में एक खंड में एक बूलियन सशर्त कैसे शामिल कर सकता हूं?एक एसक्यूएल लाइट में बूलियन कैसे शामिल करें जहां क्लॉज

मैं इन

"Select * from table where col = 1" 
"Select * from table where col = '1'" 
"Select * from table where col = true" 
"Select * from table where col = 'true'" 
"Select * from table where col = 'True'" 
"Select * from table where col is True" 

कुछ भी नहीं है की कोशिश की है। मैंने एक प्रश्न समारोह में कहां "सत्य" सहित कोशिश की।

कोई भी इससे पहले किया?

+1

' ... जहां (col) '? –

उत्तर

11
SQLite में एक अलग बूलियन स्टोरेज क्लास नहीं है। इसके बजाए, बूलियन मान पूर्णांक 0 (झूठी) और 1 (सत्य) के रूप में संग्रहीत किए जाते हैं।

स्रोत: SQLite

पहले एक तो सही लग रहा है।

+0

मैं एक घंटे पहले एक ही जानकारी में भाग गया। मैं पंक्तियों की गिनती कर रहा हूं जहां वैल 0 और 1 दोनों है, और इसका हमेशा 0. कुछ और हो रहा है जो मैं नहीं देख रहा हूं। बस सोच रहा है कि किसी ने पहले ऐसा किया है या नहीं। –

+1

हो सकता है कि आप सही मूल्य नहीं देख रहे हों। क्षेत्र वास्तविक मूल्य की जांच करने के लिए 'sqlite3 .dump' आज़माएं। – seppo0010

0

एसक्यूएलटीई में कोई वास्तविक बूलियन नहीं है। यदि आप SQLite प्रशासक का उपयोग कर बनाया, यहाँ तुम कैसे करते है:

Select * from table where col is 'Y' 
-1

यह अच्छी तरह से काम करता है "तालिका से * का चयन करें जहां col = 'सही' '

1
SQLite version 3.7.4 
Enter ".help" for instructions 
Enter SQL statements terminated with a ";" 
sqlite> CREATE TABLE "stack_test" ("id" INTEGER, "bool_col" boolean); 
sqlite> insert into stack_test values(1,'t'); 
sqlite> insert into stack_test values(2,'f'); 
sqlite> insert into stack_test values(3,'1'); 
sqlite> insert into stack_test values(4,'0'); 
sqlite> insert into stack_test values(5,1); 
sqlite> insert into stack_test values(6,0); 
sqlite> insert into stack_test values(7,banana); 
Error: no such column: banana 
sqlite> insert into stack_test values(7,'banana'); 
sqlite> .headers on 
sqlite> select * from stack_test; 
id|bool_col 
1|t 
2|f 
3|1 
4|0 
5|1 
6|0 
7|banana 

sqlite> select * from stack_test where bool_col=t; 
Error: no such column: t 
sqlite> select * from stack_test where bool_col='t'; 
id|bool_col 
1|t 
sqlite> select * from stack_test where bool_col=0; 
id|bool_col 
4|0 
6|0 
sqlite> select * from stack_test where bool_col=1; 
id|bool_col 
3|1 
5|1 
sqlite> select * from stack_test where bool_col=true; 
Error: no such column: true 
sqlite> select * from stack_test where bool_col=banana; 
Error: no such column: banana 
sqlite> select * from stack_test where bool_col='banana'; 
id|bool_col 
7|banana 
sqlite> 
sqlite> .schema stack_test 
CREATE TABLE "stack_test" ("id" INTEGER, "bool_col" boolean); 
sqlite> 
संबंधित मुद्दे