我可以用纯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中文网其他相关文章!