我怎样才能获得决赛桌?我想合并,以便如果它比较并且记录中有一个空列,它会用后一个值填充它。规则是 storetype 应该为每个用户只出现一次

这可能是我做过的最脏的代码:)...如果您要处理的记录超过数百条,我什至不会推荐它。让我知道,因为我无法在 IDE 上检查它。
<?php
$query = 'SELECT * FROM TABLE 1';
$result = mysql_query($query);
if ($result){
while ($result=mysql_fetch_array($result)){
$data[] = $row;
}
}
//
if (isset($data)){
$x=0;
$y=0;
$missingColumn = array();
while ($x < count($data)){
foreach ($data[$x] as $key=>$value){
if (empty($value)){
$missingColumn[$y][] = $key;
} else {
$output[$y][] = $value;
}
}
if ($missingColumn[$y]){
$rowComplete = FALSE;
$yetToBeCompleted = count($missingColumn[$y]);
while (!$rowComplete && $x<count($data)){
$x++;
foreach ($missingColumn as $value){
if ($data[$x][$value] <> ''){
$output[$y][$value] = $data[$x][$value];
$yetToBeCompleted--;
}
}
if (0 == $yetToBeCompleted){
$y++;
break;
//$rowComplete = TRUE;
}
}
$y++;
} else {
$y++;
$x++;
}
}
}
?>
也许我在 mysql 方面不是那么多才多艺,但没有任何困难的数据更改技术,我认为这是不可能的。
看起来您正在按usernameand分组storetype。尝试运行这个:
select min(id), username, min(filename), min(date), min(desc), storetype,
min(password), min(email), min(ftp)
from table1
group by username, storetype
请注意,当然,如果您确实拥有屏幕截图中显示的数据,即每列只有 1 个非空值,username并且除列storetype之外,每列中只有 1 个非空值id。在这种情况下,该id列看起来像是您选择了最小值,因此查询也会导致该值。