首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MYSQL一个字段内容列表

MYSQL一个字段内容列表
EN

Stack Overflow用户
提问于 2015-08-20 15:11:14
回答 2查看 49关注 0票数 2

我的桌子看起来像这样

代码语言:javascript
运行
复制
username  clientname     date         time          publishedapp
 akirk     hplaptop1      30/07/2015   8:42:30.04    PB Desktop service
 akirk     hplaptop1      30/07/2015   8:40:30.04    Chrome
 akirk     hplaptop1      30/07/2015   8:40:20.04    desktop@Work2-1
 akirk     hplaptop1      30/07/2015   8:40:20.04    Powerplan
 john      dellPC1        27/07/2015   9:41:30.04    desktop@Work2-1
 john      dellPC1        27/07/2015   9:41:30.04    Word 2013
 karl      delllaptop2    27/07/2015   9:40:21.00    Chrome
 karl      delllaptop2    27/07/2015   9:40:21.00    Desktop with acrobat
 jdoe      HPPC1          27/07/2015   9:40:15.00    Powerplan

我想出去戴上正方形

代码语言:javascript
运行
复制
Username:
  List of apps/software

在某些情况下,列表将被过滤以包含用户、用户、某些桌面和多个应用程序,因此我希望在返回时获得类似的内容。

使用桌面@Work2-1和至少一个应用程序的用户

代码语言:javascript
运行
复制
User akirk
apps chrome, powerplan

User John
apps word 2013

...

使用多个应用程序的用户

代码语言:javascript
运行
复制
User akirk
apps chrome, powerplan

...

使用桌面@Work2-1和其他桌面的用户

代码语言:javascript
运行
复制
User akirk
desktops PB Desktop service

...

对如何开始这个有什么想法吗?

我正在使用PHP,Im考虑每个用户一个查询,然后使用php来完成剩下的工作?这有可能吗?

编辑:

我尝试过这样的GROUP_CONCAT:

代码语言:javascript
运行
复制
$conn->query("SET group_concat_max_len = 2048");

$sql = "SELECT username,
GROUP_CONCAT(DISTINCT publishedapp SEPARATOR \",\")
FROM tbl_name
GROUP BY username
";

但是我得到了

我的PHP

代码语言:javascript
运行
复制
for ($i=1; $i <= $result->num_rows; $i++) {
  $row = $result->fetch_assoc();

  //echo $i .".- ". $name1 = $row["username"];
  echo $i .".- ". $name1 = $row["username"] ." ". $app1 = $row["publishedapp"];
  echo "<br>";

}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-08-21 15:05:02

我成功地用group_concat做了这件事,因为它失去了可以从PHP调用它的部分.

查询

代码语言:javascript
运行
复制
$sql = "SELECT username,
GROUP_CONCAT(DISTINCT publishedapp SEPARATOR \"<br>\") AS publishedapp
FROM tbl_name
GROUP BY username
";

PHP

代码语言:javascript
运行
复制
for ($i=1; $i <= $result->num_rows; $i++) {
  $row = $result->fetch_assoc();

  //echo $i .".- ". $name1 = $row["username"];
  //echo $i .".- ". $name1 = $row["username"] ." ". $app1 = $row["publishedapp"];
  echo $i .".- ". $name1 = $row["username"];
  echo "<br>";
  echo $app1 = $row["publishedapp"];
  echo "<br>";
  echo "<br>";

}
票数 0
EN

Stack Overflow用户

发布于 2015-08-20 15:25:09

没错,您只需要一个查询,然后对于每个返回的行,您可以将已发布的应用程序存储在一个变量中,逗号分隔如下:

代码语言:javascript
运行
复制
$apps = "";

//Where you are retrieving your sql data
$apps .= $your_returned_data . ", ";

然后,只要回显$apps,您就会得到一个逗号分隔的应用程序列表:)

不应该说每个用户一个查询(错误)。你只需要这样的东西:

代码语言:javascript
运行
复制
SELECT * FROM tablename GROUP BY username
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32122007

复制
相关文章

相似问题

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