Sql 如何匹配JSON数组中的字符串?

Sql 如何匹配JSON数组中的字符串?,sql,sql-server,json,sql-server-2008,postgresql-9.3,Sql,Sql Server,Json,Sql Server 2008,Postgresql 9.3,我在一个名为的表中有一个名为data的JSON列,该表如下所示: select * from data_table; id | data ----+------------------------ 1 | ["a","aa","aaa","aaaa"] 2 | ["b","bb","bbb","bbbb"] 3 | ["c","cc","ccc","cccc"] 我想做的是查询表中与数据列中的“bbb”值匹配的所有数据表 我尝试过这样的事情,但没有成功

我在一个名为的表中有一个名为data的JSON列,该表如下所示:

select * from data_table;

 id |           data   
----+------------------------
  1 | ["a","aa","aaa","aaaa"]
  2 | ["b","bb","bbb","bbbb"]
  3 | ["c","cc","ccc","cccc"]
我想做的是查询表中与数据列中的“bbb”值匹配的所有数据表

我尝试过这样的事情,但没有成功:

SELECT * 
FROM data_table 
WHERE data::text[] @> string_to_array('bbb',',') ;

使用
%
通配符和类似的
语句

SELECT * FROM data_table WHERE data LIKE '%"bbb%"';

在任何包含bbb的行中,无论它周围是什么,您希望它返回吗?因此,在上面的示例中,它将返回第二行?一些版本的postgres似乎内置了json查询:看到这个使用OPENJSON,比LIKE好得多。看到这个比LIKE好得多。谢谢@Matt。。。但我想要精确匹配,其他行可能包含类似“bbbbb”或“abbb”的内容。