如何在 laravel 中获取 PostgreSQL 的 JSON 类型数据?
Posted
技术标签:
【中文标题】如何在 laravel 中获取 PostgreSQL 的 JSON 类型数据?【英文标题】:How to get PostgreSQL's JSON type data in laravel? 【发布时间】:2017-02-12 16:30:28 【问题描述】:我创建了表格
-- Table: public.books
-- DROP TABLE public.books;
CREATE TABLE public.books
(
id integer,
data json
)
WITH (
OIDS=FALSE
);
ALTER TABLE public.books
OWNER TO postgres;
-- Index: public.books_author_first_name
-- DROP INDEX public.books_author_first_name;
CREATE UNIQUE INDEX books_author_first_name
ON public.books
USING btree
(((data -> 'author'::text) ->> 'first_name'::text) COLLATE pg_catalog."default");
和
select * from books;
来自 laravel:
$testPJSON=DB::select('SELECT * FROM books WHERE data->>"last_name" = "White"');
得到空值; 在 Laravel 中从 Postgres JSON 类型获取数据的最佳方式是什么?
【问题讨论】:
【参考方案1】:您的查询应该与数据匹配。 JSON 对象中没有元素last_name
。
试试这个 SQL 语句:
$testP2=DB::select(
"SELECT * FROM books WHERE data->'author'->>'last_name' = 'White'"
);
【讨论】:
以上是关于如何在 laravel 中获取 PostgreSQL 的 JSON 类型数据?的主要内容,如果未能解决你的问题,请参考以下文章
如何从数据库中获取数据以及会话如何在 laravel 中工作? [复制]