【发布时间】:2020-08-04 01:13:20
【问题描述】:
在使用 json 列时,我的测试环境出现问题。
在我的测试中,我使用了一个 SQLite 数据库,并且我意识到在访问 json 列时我的查询失败了......我不知道如何面对它。我正在运行最新版本的 Homestead。
我的问题是:
我有一个带有 settings json 列的 User 模型,其中存储了一个名为 mailing 的布尔值,因此,如果我想查询所有具有 mailing true 的用户,我可以写:
User::where('settings->mailing', true)->count();
然后,这会引发一个错误:
SQLSTATE[HY000]: General error: 1 no such column: true (SQL: select count(*) as aggregate from "users" where json_extract("settings", '$."mailing"') = true)
在我使用 MySQL 的本地环境中,它工作正常,那么,SQLite 和 json 列查询是否存在问题?
另一个提示:当使用whereNull() 或whereNotNull() 时,它在两种环境中也都能正常工作。
谢谢!
【问题讨论】:
-
SQLite 在 3.23.1 中添加了 TRUE 和 FALSE 支持:sqlite.org/releaselog/3_23_1.html
标签: json laravel sqlite eloquent