当前位置:  开发笔记 > 前端 > 正文

SQLite中有一个布尔文字吗?

如何解决《SQLite中有一个布尔文字吗?》经验,为你挑选了4个好方法。

我知道boolean 列类型,但SQLite中有boolean 文字吗?在其他语言中,这可能是truefalse.显然,我可以使用01,但我倾向于尽可能避免所谓的"魔术数字".

从这个列表中,它似乎可能存在于其他SQL实现中,但不存在于SQLite中.(我正在使用SQLite 3.6.10,它的价值.)



1> Justin Ethie..:

从1.1节文档的布尔数据类型:

SQLite没有单独的布尔存储类.相反,布尔值存储为整数0(假)和1(真).

所以它看起来像你被卡住01.


我来到这里*之后*阅读文档的确切位置,其中,恕我直言,对于`0`和`1`是否分别使用SQLite的SQL解析器标识符`false`和`true`来说是非常模糊的.
@Lloeki SQLite现在支持文字:)请查看/sf/ask/17360801/
可悲的是这个答案不会的问题,这是不是对存储类/*列类型*而是使用TRUE`的`和`FALSE`*文字*,这是SQL兼容为[每PostgreSQL的DOC]回应(https://www.postgresql.org/docs/8.1/static/datatype-boolean.html).

2> Lukasz Szozd..:

SQLite中是否有布尔文字?

如Justin Ethier的回答所述,SQLite没有针对布尔值的特定数据类型。但是从SQLite 3.23.0开始,它支持true / false文字:

    将TRUE和FALSE识别为常量。(出于兼容性考虑,如果存在名为“ true”或“ false”的列,则标识符引用这些列而不是布尔常量。)

    支持运算符为TRUE,FALSE,NOT TRUE和FALSE。

SELECT true AS t, false AS f;

SELECT 'condition is true'
WHERE 1 IS NOT FALSE;

CREATE TABLE a (id INT, b BOOLEAN DEFAULT(TRUE));
INSERT INTO a(id) VALUES(100);
SELECT * FROM a;
-- id  b
-- 100 1

SELECT * FROM a WHERE true;
-- id  b
-- 100 1

dbfiddle.com演示



3> Andrey..:

1.1布尔数据类型

SQLite没有单独的布尔存储类.相反,布尔值存储为整数0(假)和1(真).

文件


我来到这里*之后*阅读文档的确切位置,其中,恕我直言,对于`0`和`1`是否分别使用SQLite的SQL解析器标识符`false`和`true`来说是非常模糊的.
是的,根据这个问题的答案,我想是这样的,但是引用的文档部分对于IMO非常不清楚.它表示布尔值*分别作为数字"0"和"1"存储*,然后表示这些数字匹配*false*和*true*.什么是*false*和*true*?读者自然语言的提示,或SQLite的SQL解析器理解的常量/别名?正如我所说,它的编写方式非常模糊.
不这么说.它也可能是SQLite的SQL解析器所理解的"false"值,它只是不清楚.这就是为什么阅读那部分文档让我完全无能为力,并寻找一些额外的确认,即在SQLite中没有这样的常量`false`和`true`,这就是我到达这里的原因.
一些C编译器可能会引入伪bool常量,就像一些SQL解析器可能会引入伪bool常量一样.

4> Lloeki..:

问题是明确不是关于列类型(即存储方式),而是使用TRUEFALSE文字(即解析器),它们符合PostgreSQL关键字文档的 SQL兼容性(它恰好也包括SQL-92,SQL :参考表中的2008和SQL:2011列).

SQLite文档列出了所有支持的关键字,这个列表既不包含TRUE也不包含FALSE,因此SQLite在这方面可能不合规.

您还可以轻松地测试它,并查看解析器barf如何将令牌作为列名称:

$ sqlite3 :memory:
SQLite version 3.14.0 2016-07-26 15:17:14
sqlite> CREATE TABLE foo (booleanish INT);
sqlite> INSERT INTO foo (booleanish) VALUES (TRUE);
Error: no such column: TRUE

推荐阅读
家具销售_903
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有