php - 有没有办法可以查询 mysql 并将 json 数据内部连接在一起?

标签 php mysql json

假设我有一个 mysql 表调用用户:

╔════════╦══════════╗
║ Userid ║ Username ║
╠════════╬══════════╣
║   1    ║  Apple   ║
╚════════╩══════════╝

我有一个 json 文件 (1.json):

{
    "Desc": "Hi I am apple",
    "Age": 10,<br>
}

我怎样才能用 php 进行内部连接来将这两个数据链接在一起

╔════════╦══════════╦═══════════════╦═════╗
║ Userid ║ Username ║     Desc      ║ Age ║
╠════════╬══════════╬═══════════════╬═════╣
║   1    ║  Apple   ║ Hi I am apple ║ 10  ║
╚════════╩══════════╩═══════════════╩═════╝

或者是否有更好的方法来构建数据库以供查询?

这样做的原因是,从长远来看,会有很多记录,通过拆分成json和mysql,mysql可以让我轻松地搜索数据,并且只在需要时检索信息。有人可以建议我这是最好的吗?提前致谢!

最佳答案

如果我理解正确,JSON 数据可以是动态的并且具有多个不同的字段。

直接在 SQL/DB 中执行此操作的一种方法是使用名为 Entity-attribute-value model 的方案。例如,wordpress 用于存储自定义动态字段的模型。它提供了很大的灵 active ,但效率不是很高。

另一种方法是直接使用 JSON 数据作为额外字段,例如:

╔════════╦══════════╦══════════════════════════════════════════════════╦
║ Userid ║ Username ║     JSON                                         ║
╠════════╬══════════╬══════════════════════════════════════════════════╬
║   1    ║  Apple   ║ {"Desc":"Hi I am apple","Age":"10"}              ║
╚════════╩══════════╩══════════════════════════════════════════════════╩

并查询表(例如使用 username=userage=10 获取用户)

SELECT UserId, UserName FROM Table
WHERE UserName = 'user'
AND JSON LIKE '%"Age":"10"%'

注意,即使是数字值也应该保存在 json 中作为字符串以便统一处理

只要您的 JSON 数据不是复杂或嵌套的,而是简单的键值对并使用LIKE(或REGEX),这也是灵活的) 子句可以是高效的

(ps这种方法也被使用,例如,wordpress,使用php序列化数据而不是JSON数据,但相同的区别)

关于php - 有没有办法可以查询 mysql 并将 json 数据内部连接在一起?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34349231/

相关文章:

json - Django 核心 : <django. utils.functional.__proxy__ 对象在 ....> 不是 JSON 可序列化的

php - 这段代码中的变量是否正确转义?

php - 在 php 下拉菜单中显示 mysql 行?

javascript - 如何动态删除嵌套的json键?

mysql - 架构中枚举的最大使用量

MySQL 说该列不明确

javascript - 为什么 JSON.stringify 返回未定义

php - 检查最后修改的目录

php - Phalcon 路由器不工作

mySql 加入每个组的缺失值