发布
社区首页 >问答首页 >SQL查询如何按其他约束选择列

SQL查询如何按其他约束选择列
EN

Stack Overflow用户
提问于 2018-12-08 22:03:35
回答 1查看 172关注 0票数 0

我正在使用PHP的背包-crud控制器。

使用背包(库)提供的crudController,我所要做的就是使用Laravel雄辩(也可能是原始的)查询来查询它。

而背包库会自动为我打印列表视图。

但我正在努力解决这个难题。

问题是我有四栏,

代码语言:javascript
代码运行次数:0
复制
session_id | column_id | batch | data
10         | 1         | 1     | data1
10         | 2         | 1     | data2
10         | 1         | 2     | data1*
10         | 2         | 2     | data2*

假设这是我的数据。我想通过session_id、批处理和按column_id在行内排序来显示这个分组。

因此,结果查询将类似于

代码语言:javascript
代码运行次数:0
复制
1 :  data1   data2
2 : data1*  data2*

如果有第三批数据

代码语言:javascript
代码运行次数:0
复制
session_id | column_id | batch | data
10         | 1         | 3     | data1**

然后它将出现在第三批下,如

代码语言:javascript
代码运行次数:0
复制
3 : data1**

我可以用代码来完成这个任务,但不能使用sql。

任何建议都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-09 02:15:40

这看起来像server中的枢轴。不幸的是,mysql没有这个特性。

我可以使用GROUP_CONCAT提供一个大致的原始mysql查询。假设您的表名是mytable

代码语言:javascript
代码运行次数:0
复制
SELECT 
   session_id, 
   batch, 
   GROUP_CONCAT(data ORDER BY column_id SEPARATOR ', ') AS dataList 
FROM mytable
GROUP BY session_id, batch

然后可以使用给定的分隔符拆分别名的dataList列(这里我使用了,)。您可以根据data列中包含的数据更改分隔符。

希望这对你有帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53687403

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档