似乎我无法在MYSQL表中使用JSON-为字段选择数据类型时没有这样的选项-phpMyAdmin ver 4.8.3
。
问题-如果我使用php函数json_encode
和json_decode
来获取和设置varchar
或text
字段内的值-我是否完全需要JSON字段?>
答案 0 :(得分:0)
您可以将JSON对象作为字符串存储在string
字段中,也可以在包含JSON类型数据的字段中使用它
这在MySQL版本8中有效
优势
您可以在这里The JSON Data Type
阅读整个文档。缺点
如果您选择使用VARCHAR
或TEXT
字段将JSON数据存储为字符串,则需要从数据库中检索到正确的数据后才能正确解析该数据。表现得像一个正确的JSON对象
答案 1 :(得分:0)
是的,除非您不想在这些json字符串的键值上执行搜索。 MySQL Json Type允许您执行此操作,除了以有效的方式存储json之外。
您可以使用Blob或文本类型。 Varchar对于json来说太短了,除非您的json长度少于255个字符。
斑点可能是个好主意。您可以将其映射到php中的资源(而不是将整个文件加载到内存中),然后使用json流解析器like this one来读取文件的内容。
但是,再次,将json存储为字符串将不允许您使用json数据以有效的方式进行查询。
注意:Mysql从5.7.8开始支持Json类型。 PhpMyAdmin是另一软件。如果您的json类型不存在,可能是因为您的MySQL版本。在您的终端中运行
mysql -V
进行检查。
答案 2 :(得分:0)
As per the official documentation
从MySQL 5.7.8开始,MySQL支持RFC 7159定义的本机JSON数据类型,该类型可有效访问JSON(JavaScript对象表示法)文档中的数据。
检查您的MySQL版本以了解它是否支持JSON数据类型。
您的问题的答案:
您可以json_encode
将数据存储在text
字段中。从数据库表中检索它之后,执行json_decode
。