gpt4 book ai didi

php - 如何将逗号分隔的列转换为行并添加计数器

转载 作者:行者123 更新时间:2023-11-29 04:48:59 30 4
gpt4 key购买 nike

我有一个包含这些值的表

表:文档

id  |       document
----|-------------
1 | doc.txt , doc1.txt , doc2.rtf , doc3.docx , doc4.doc
2 | doc.txt
3 | doc.txt , doc1.txt
4 | doc.txt , doc1.txt , doc2.rtf
5 | doc.txt , doc1.txt , doc2.rtf , doc3.docx , doc4.doc
6 | doc.txt , doc1.txt , doc2.rtf , doc3.docx
7 | doc.txt , doc1.txt , doc2.rtf , doc3.docx , doc4.doc
8 | doc.txt , doc1.txt , doc2.rtf
9 | doc.txt , doc1.txt , doc2.rtf , doc3.docx , doc4.doc
10 | doc.txt , doc1.txt

SQL FIDDLE SCHEMA

我需要这样的结果。其中 id = 5

Counter |   docs
----|-----------
1 | doc.txt
2 | doc1.txt
3 | doc2.rtf
4 | doc3.docx
5 | doc4.doc

其中 id = 4

Counter |   docs
----|-----------
1 | doc.txt
2 | doc1.txt
3 | doc2.rtf

你看我需要分解逗号分隔的列并计算那里有多少个值。我不喜欢这个架构,但我正在处理一个现有项目并且无法更改它。我需要在用户界面中显示计数器。所以柜台也是必要的。我怎样才能做到这一点?我也不能在 php 端执行此操作,因为我正在使用 pyrocms,我需要使用 pyrocms tage 显示它,这不允许我在 View 中使用 php。

最佳答案

看看这个SQL FIDDLE ,也许这就是你想要的。您必须使用辅助表 sequence

SELECT * FROM
(SELECT S.Id Counter,
REPLACE(SUBSTRING(SUBSTRING_INDEX(document, ' , ', S.Id),
LENGTH(SUBSTRING_INDEX(document, ' , ', S.Id - 1)) + 1),
' , ', '') docs
FROM documents D, sequence S
WHERE D.id = 3) A
WHERE A.docs <> ''

关于php - 如何将逗号分隔的列转换为行并添加计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14184529/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com