在mysql服务器列中查询JSON

时间:2016-05-05 18:25:44

标签: php mysql json

我的mysql表中有一列包含以下Json数据。

var employees = [
{"firstName":"John", "lastName":"Doe"},
{"firstName":"Anna", "lastName":"Smith"},
{"firstName":"Peter","lastName": "Jones"}
];

现在我想在我的查询中使用此列数据,如

select * 
from tb1 
left join tb2 on tb1.(this firstName inside my column) = tb2.firstName.

有没有办法在mysql服务器中查询JSON数据?

3 个答案:

答案 0 :(得分:0)

mySQL支持JSON但是你必须将列正确设置为JSON(将JSON字符串放在varchar / text NOT 工作。请参阅文档:https://dev.mysql.com/doc/refman/5.7/en/json.html

答案 1 :(得分:0)

假设您使用的是Mysql 5.7版(下面不支持json对象类型),并假设您的列是json类型,则可以使用此查询:

SELECT * from tb1 where yourJsonColumn->'$.firsName' = 'yourDesiredFirstName'; 

答案 2 :(得分:-1)

当然,但它不会很快

SELECT * 
FROM tb1
LEFT JOIN tb2 ON 
  UPPER(tb1.employee_column) LIKE (UPPER(CONCAT('%"firstName":"', tb2.firstName, '"%')))