- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
这是一个奇怪的:
我可以从 SQLite 过滤 NOT NULLS
,但不能过滤 NULLS
:
这个有效:
SELECT * FROM project WHERE parent_id NOT NULL;
这些不会:
SELECT * FROM project WHERE parent_id IS NULL;
SELECT * FROM project WHERE parent_id ISNULL;
SELECT * FROM project WHERE parent_id NULL;
全部返回:
There is a problem with the syntax of your query (Query was not executed) ...
更新:
我正在使用 PHP 执行此操作 - 通过我的代码和 ezSQl 并使用 PHPLiteAdmin界面
使用 PHPLiteAdmin demo ,这个表达式有效——所以现在我怀疑我的 PHP 的 SQLite 有版本问题?那可能吗?这个表达式不是一直有效吗?
更新 2:
当我使用 ezSQL 从 PHP 运行代码时,PHP 警告是:
PHP Warning: SQL logic error or missing database
有没有办法从 PHP 中获取更多信息?这是令人发狂的不透明和怪异,特别是因为 CLI 中的相同语句工作正常......
更新 3
我唯一可能的线索是 CLI 无法读取我用 PHP 创建的数据库,反之亦然。我得到:
Error: file is encrypted or is not a database
所以这里肯定有两种 SQlite 风格的冲突。 ( See this ) 不过,为什么声明无效?
更新 4
好的,我想我已经追查到问题的根源,如果不是原因的话——我用 PHP ezSQL 创建的数据库是 IS NULL 语句失败的地方。如果我使用 PHP 的 SQLite3 类创建数据库,语句工作正常,而且,我可以从 CLI 访问数据库,而 ezSQL 创建的数据库给出了 file is encrypted
错误。
所以我深入研究了 ezSQL 代码——我立即看到它使用 PDO 方法,而不是更新的 SQLite3 类。也许那是什么——我不会再浪费时间在这上面了……
无论如何,我找到了我的解决方案,即避开 ezSQL,而只使用 PHP 的 SQLite3 类。
最佳答案
a IS b
and a IS NOT b
是一般形式,其中 a
和 b
是表达式。
这通常只在a IS NULL
和a IS NOT NULL
情况下出现。还有 ISNULL
和 NOTNULL
(也是 NOT NULL
)运算符,它们分别是前面表达式的简写(它们只接受一个单操作数)。
在 SQLite 表达式中理解的 SQL 包含在 SQLite Query Language: Expressions 中.
如果使用 CLI,请确保(先前的)语句已以 ;
终止。
这些都可以有效地否定“空匹配”:
expr NOT NULL
expr NOTNULL
expr IS NOT NULL
这些都是有效的“匹配null”:
expr ISNULL
expr IS NULL
由于所有上述结构本身都是表达式,因此否定也是有效的(例如 NOT (expr NOT NULL)
等同于 expr IS NULL
)。
快乐编码。
布丁中的证据:
SQLite version 3.7.7.1 2011-06-28 17:39:05
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> create table x (y int null);
sqlite> select * from x where y isnull;
sqlite> select * from x where y notnull;
sqlite> select * from x where y not null;
sqlite> select * from x where y is null;
sqlite> select * from x where y is not null;
sqlite>
关于sqlite - WHERE - NULL 在 SQLite 中不起作用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7519621/
今天有小伙伴给我留言问到,try{...}catch(){...}是什么意思?它用来干什么? 简单的说 他们是用来捕获异常的 下面我们通过一个例子来详细讲解下
我正在努力提高网站的可访问性,但我不知道如何在页脚中标记社交媒体链接列表。这些链接指向我在 facecook、twitter 等上的帐户。我不想用 role="navigation" 标记这些链接,因
说现在是 6 点,我有一个 Timer 并在 10 点安排了一个 TimerTask。之后,System DateTime 被其他服务(例如 ntp)调整为 9 点钟。我仍然希望我的 TimerTas
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我就废话不多说了,大家还是直接看代码吧~ ? 1
Maven系列1 1.什么是Maven? Maven是一个项目管理工具,它包含了一个对象模型。一组标准集合,一个依赖管理系统。和用来运行定义在生命周期阶段中插件目标和逻辑。 核心功能 Mav
我是一名优秀的程序员,十分优秀!