首页  >  文章  >  数据库  >  我可以使用纯 MySQL 连接在列中使用分号分隔值的表吗?

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

Barbara Streisand
Barbara Streisand原创
2024-11-01 10:27:02825浏览

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn