php - 连接两个表,但连接键位于查询字符串中

标签 php mysql sql left-join

我想连接这两个表,但第二个表的连接键位于查询字符串中,

页面表格,

page_id     url
1           a
2           c
3           d

系统表,

system_id       query
1               page_id=1&content=on&image=on
2               type=post&page_id=2&content=on

如您所见,page_idsystem 表中query 字符串的一部分。

那么我怎样才能像下面的标准连接表方法一样连接它们呢?

SELECT*
FROM page AS p

LEFT JOIN system AS s
ON p.page_id = s.page_id

编辑:

我可以将system表更改为类似这样的内容,

system_id       page_id    query
1               1           page_id=1&content=on&image=on
2               2           type=post&page_id=2&content=on
3               NULL        type=page

但我不想这样做的原因是 page_id 对于许多特定记录来说是不需要的。我不想创建一个包含太多 null 的列。

最佳答案

我肯定会为 page_idcontentimagetype 创建列(并将它们编入索引) 。那么数据库就会变得更轻并且运行速度也会更快。

关于php - 连接两个表,但连接键位于查询字符串中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10392989/

相关文章:

php - 为什么将值传递给 PHP 函数然后将其转义并返回是不安全的

找不到 MySql 服务器 PID

mysql - 尝试查找仅包含具有特定样式和名称的订单项的订单

合并重复记录并求和 QTY 的 SQL 查询

sql - PLSQL:在 if 语句中使用子查询错误 PLS-00405

php - 使 Woocommerce (3.8.0) 管理电子邮件包含结账页面中的我的自定义字段数据

php - WordPress 安装错误 [未知字符集 : 'utf' ]

php - 简单的 PDO 暴力查询不起作用

mysql - 在多个数据库上共享一个表

sql - 用于连接表的 Postgres 唯一多列索引