我可以使用纯 MySQL 连接在列中使用分号分隔值的表吗?

Barbara Streisand
发布: 2024-11-01 10:27:02
原创
824 人浏览过

Can I Join Tables with Semi-colon Separated Values in a Column Using Pure MySQL?

我可以用纯mysql解决这个问题吗? (连接列中的“;”分隔值)

问题:

给定两个表,用户表 t1 的资源列包含 '; '分离的资源 ID,以及包含 ID 和数据的资源表 t2,您希望连接 t1 和 t2 以获得包含用户和资源数据的表。

问题:

你不能使用外部语言来操作结果并且user_resources表是非规范化。

解决方案:

创建一个名为“integerseries”的表,其中包含从 1 到特定限制的数字。使用 COUNT_IN_SET 和 VALUE_IN_SET 函数(将资源列视为数组)来规范化表。然后与整数系列连接以提取单个资源 ID。

<code class="sql">SELECT user_resource.user, 
       resource.data

FROM user_resource 
     JOIN integerseries AS isequence 
       ON isequence.id <= COUNT_IN_SET(user_resource.resources, ';') 

     JOIN resource 
       ON resource.id = VALUE_IN_SET(user_resource.resources, ';', isequence.id)      
ORDER BY
       user_resource.user,  resource.data</code>
登录后复制

以上是我可以使用纯 MySQL 连接在列中使用分号分隔值的表吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!