gpt4 book ai didi

mysql - 获取不同的用户但关联的所有其他行

转载 作者:行者123 更新时间:2023-11-29 12:36:00 24 4
gpt4 key购买 nike

我不知道如何解释..我认为 GROUP 可能就是我正在寻找的..但我从未使用过它。

数据架构:

user1     col1   col2   col3   col4
user1 col1 col2 col3 col4
user1 col1 col2 col3 col4
user1 col1 col2 col3 col4
user2 col1 col2 col3 col4
user2 col1 col2 col3 col4
user2 col1 col2 col3 col4
user3 col1 col2 col3 col4
user3 col1 col2 col3 col4
user4 col1 col2 col3 col4
user4 col1 col2 col3 col4
user4 col1 col2 col3 col4
user4 col1 col2 col3 col4

etc..

我想要做的是查询数据库并获取不同用户的列表,但包含所有其他列。

example:

user1 col1 col2 col3 col4
col1 col2 col3 col4
col1 col2 col3 col4
col1 col2 col3 col4

user2 col1 col2 col3 col4
col1 col2 col3 col4
col1 col2 col3 col4

user3 col1 col2 col3 col4
col1 col2 col3 col4

等等..

我不需要冗余的用户名..我只需要一次,但我需要与同一用户关联的所有其他列/行..直到一个新的不同用户出现/下一个

我想使用 GROUP?我不确定要搜索/使用什么才能获得此结果。

我对 MySQL 没有太多经验..因此,如果有一个易于阅读/理解的查询或 tut/link 将不胜感激。

显然 Group_Concate 有大小限制..(这对我来说没有好处)

新问题是我该如何:

仅选择/获取不同的名称...但要计算有多少个名称?

示例:

First1  Last1
First1 Last1

First2 Last2

First3 Last3
First3 Last3
First3 Last3
First3 Last3

这将返回:

First1 Last1 (2)
First2 Last2 (1)
First3 Last3 (4)

所以我只得到每个唯一的名称一次..但也得到总共多少次(数?)它在那里?

更新:使用 RADAR 的最后答案(在他的评论中)

我需要以某种方式将其集成到我当前的搜索查询中:(我正在使用 PDO)

我需要以某种方式将其集成到我当前的查询中,因为它只是在用户将用来搜索的可能字段数组上使用 %like%:

// define the list of fields (easier to loop through and check for values)
$searchFields = array('first', 'last', 'suffix', 'trialdate', 'wcity', 'wstate', 'plaintiff');
$searchConditions = array();

//loop through the defined fields & build query
foreach($searchFields as $searchField){
// if the field is set and not empty
if(isset($_POST[$searchField]) && $_POST[$searchField] != '') {

$searchConditions[] = "`$searchField` LIKE '%" . $_POST[$searchField] . "%'";
}
}

//build the query
$getExperts_sql = "SELECT * FROM $tablename";


// if there are conditions defined
if(count($searchConditions) > 0) {
// append the conditions
$getExperts_sql .= " WHERE " . implode (' AND ', $searchConditions); // you can change to 'OR', but I opt'd to apply the filters cumulative
}

我需要以某种方式获取 RADAR 发布的内容..但也能够获取行数据/内容来填充页面?

我想这可以做到:

select *, count(*) from lnExpertWitness group by first,last;

最佳答案

这最好在应用层完成

你可以对mysql中的变量做同样的事情

select
@num := if(@user_name = user, @num + 1, 1) as row_number,
@user_name := user as dummy,
(case when @num = 1 then user else '' end) as user, col1, col2, col3, col4

from Table1, (select @num := 0, @user_name:= '' ) t

要获取计数,请使用GROUP BY

select col1, col2 , count(*)  as TotalCount
from table1
group by col1,col2

关于mysql - 获取不同的用户但关联的所有其他行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26786901/

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