【发布时间】:2017-10-28 10:44:18
【问题描述】:
我有一个带有json列“contact_info”的表,该列的结构通常是这样的:
{
"telephones":[
{"telephone":54435345,"type":"landline"},
{"telephone":694823747,"type":"mobile"},
]
}
我想查找具有特定电话的所有行, 我在 sqlalchemy 的 json 数组周围发现的唯一东西是这样的:
Table.contact_info["telephones"][0]["telephone"].astext.ilike(mask)
但这只会搜索0th 元素。
目前我愚蠢的解决方案是将“电话”转换为文本并执行ilike,但这当然是错误的......
Table._contact_info["telephones"].astext.ilike(mask)
【问题讨论】:
-
理解你的感受,但据我所知你的解决方案很好:)你可以使用 .like ,但应该更快。
-
你试过
func.json_contains吗? -
哪个数据库?
标签: python postgresql sqlalchemy