[英]Why is ActiveRecord/PostgreSQL not finding my data in the database?
[英]Why is my postgreSQL query not finding the correct object from my table?
我得到的东西像 == 不是符号和命令未找到。 通过电子邮件选择用户的正确方法是什么? 这是我的表架构:
-- Your database schema goes here --
-- USERS TABLE --
DROP TABLE IF EXISTS users;
CREATE TABLE users(userAccount jsonb);
-- SECRETS TABLE --
DROP TABLE IF EXISTS secrets;
CREATE TABLE secrets(secrets jsonb);
这是我的填充表:
-- USERS TABLE POPULATION --
DELETE FROM users;
INSERT INTO users VALUES ('{"name":"Jack Cooper","password":"banana","email":"jc@gmail.com","role":"admin"}');
INSERT INTO users VALUES ('{"name":"Emmanuel Pena", "password":"potato", "email":"ep@gmail.com", "role": "admin"}');
我试过的查询是:
SELECT userAccount FROM users WHERE userAccount->'email' ~* $1
SELECT userAccount FROM users WHERE userAccount->'email' LIKE $1
SELECT userAccount FROM users WHERE userAccount->'email' = $1
SELECT userAccount FROM users WHERE userAccount->'email' == $1
您正在使用带有单箭头的 json,而过滤您想要使用文本作为json compared to string
在任何 SQL 语句中都是无效的,因此请使用以下语法。
SELECT userAccount->'email' FROM users where userAccount->>'email'like'%@gmail.com';
相同的参考: https : //www.postgresqltutorial.com/postgresql-json/
这个怎么运作:
PostgreSQL 提供了两个原生操作符 -> 和 ->> 来帮助你查询 JSON 数据。
The operator -> returns JSON object field by key.
The operator ->> returns JSON object field by text.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.