我无意中写了这段代码
SELECT COUNT(*) "Table0" WHERE "Column0" = ? LIMIT 1;
当我打算写这段代码时:
SELECT COUNT(*) FROM "Table0" WHERE "Column0" = ? LIMIT 1;
我真的很惊讶第一行编译时没有出现任何错误。我已经检查了 SQLite 文档中的语法,看起来这不应该编译,但实际上却可以。这是怎么回事?SQLite 如何解释它?
即使表中存在匹配,错误的行也总是返回 0。
而且有趣的是,LibSQL 确实失败了,但出现了一条关于“Column0”不存在的消息......一旦我们理解了它是如何被解释的,也许这会更有意义......