如何使用php和mysql按列用户名检查最后一行ref?
这是我的表
_________________________________
|_id_|_____username_____|___val___|
| 1 | AAAA | 3 |
| 2 | AAAA | 4 |
| 3 | AAAA | 5 |
| 4 | CCCC | 1 |
| 5 | CCCC | 3 |
| 6 | CCCC | 4 |
| 7 | CCCC | 7 |
| 8 | DDDD | 2 |
| 9 | DDDD | 4 |
这是我的代码。
<?php
include("connect.php");
$strSQL = "SELECT * FROM table order by id asc ";
$objQuery = mysql_query($strSQL);
while($objResult = mysql_fetch_array($objQuery))
{
echo ["val"];
echo "<BR>";
}
?>
当我测试代码时。我会回应
3
4
5
1
3
4
7
2
4
但我想在最后一行回复用户名。
3
4
5 AAAAA
1
3
4
7 CCCCC
2
4 DDDDD
我该怎么做?谢谢。
答案 0 :(得分:1)
试试这个:
SELECT t1.val,t2.username FROM `test` as t1
left join (SELECT max(id) as id,username FROM `test` group by username) as t2 on t1.id=t2.id
答案 1 :(得分:0)
使用PHP的简单答案。
<?php
include("connect.php");
$strSQL = "SELECT * FROM table order by id asc ";
$objQuery = mysql_query($strSQL);
$objResult = mysql_fetch_array($objQuery)
foreach($objResult as $key => $value){
echo $value["val"];
if($value["username"] != $objResult[$key+1]["username"]){
echo $value["username"];
}
?>
我写的例子。
<?php
$arr = array(
array(
3,
'AAAA'
),
array(
4,
'AAAA'
),
array(
5,
'AAAA'
),
array(),
array(),
array(),
array()
);
foreach($arr as $key => $value){
echo $value[0];
if($value[1] != $arr[$key+1][1]){
echo $value[1];
}
echo "\n";
}
?>
答案 2 :(得分:0)
如果您愿意使用php
,那么您可以尝试这样:
<?php
include("connect.php");
$strSQL = "SELECT GROUP_CONCAT(val) as vals,username FROM table GROUP BY username order by id asc ";
$objQuery = mysql_query($strSQL);
while($objResult = mysql_fetch_array($objQuery))
{
$vals=explode(",",$objResult['vals']);
for($i=0;$i<sizeof($vals);$i++){
if($i == sizeof($vals)-1){
echo $vals[$i]." ".$objResult['vals']."<br>";
}else{
echo $vals[$i]."<br>";
}
}
}
答案 3 :(得分:0)
您可以在查询结束
中获取解决方案
<?php
include("connect.php");
$qobject = mysql_query("SELECT u3.id,u4.username,u4.val FROM `user` as u3 left join (SELECT u1.*
FROM user u1 LEFT JOIN user u2
ON (u1.username = u2.username AND u1.id < u2.id)
WHERE u2.id IS NULL
) as u4 on u4.id=u3.id");
while($data = mysql_fetch_array($qobject)){
echo $data['id'].$data['username'];
}
?>
查询耗时0.0009秒