在 MySql 列中查询 JSON
有什么方法可以从存储在 MySql 中 varchar 或 string 行中的 JSON 中查询特定值吗?有点像使用 MongoDB(或沙发或乌鸦)而不使用老朋友 MySql。
我知道即使我查询这个值,我仍然会错过 NoSql 解决方案的所有功能,但我只需要在 MySQL 中存储无模式信息。
PS:如果数据存储为 XML 而不是 JSON 会怎样?
更新:我想添加一些内容以供将来参考:
如果您正在寻找一种在共享托管中拥有无模式存储的方法,最简单的方法是注册 montodb 托管解决方案或 couchdb 托管解决方案(https: //cloudant.com/#!/solutions/cloud 例如)。
Is any way to query specific values from a JSON stored in varchar or string row in MySql? A little bit as using MongoDB (Or couch or raven) with out old friend MySql.
I know that even if I get to queries this values, I still will be missing all the features of NoSql solutions, but I just need to store schemaless information in MySQL.
PS: what if the data is stored as XML instead of JSON?
UPDATE: I want to add something for future reference:
If you are looking for a way to have schemaless storage in a shared hosting, the easiest way is to sign up for a montodb hosted solution, or couchdb hosted solution (https://cloudant.com/#!/solutions/cloud for example).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
AFAIK 中您无法将 JSON 查询为 MySQL 中的“JSON”。您可以将该值作为“varchar”执行任何操作,但不能将其作为“JSON 格式的结构化数据”。换句话说,您可以执行“like”或“=”,但无法执行
where xy = 4
或order by xz
等操作,给定 JSON 结构:You cannot query JSON as 'JSON' within MySQL AFAIK. You can perform any operation which you can for that value as a 'varchar' but not as 'structured data in JSON format'. In other words, you can do 'like' or '=', but you will not be able to do something like
where x.y = 4
, or something likeorder by x.z
, given the JSON structure of:为什么要将 XML/JSON 数据存储为数据库中的一个字段?如果结构包含多个元素,那么您可以将数据分解为更小的粒度级别。
Why are you storing XML/JSON data as one field in a database? If the structure contains more than one element, then you can break the data down into a smaller level of granularity.