如果两行相等,MYSQL返回一个值

时间:2014-09-09 10:25:22

标签: php mysql

我有一个看起来像这样的MYSQL表

| id | User | Message |
_______________________
| 1  |John  | Hello Peter  
| 2  |Peter | Hello John
| 3  |Peter | How are you?

我需要找到这样的查询:

选择最后一行并获取用户名和消息(第3行),然后减去1(第2行) 如果用户名与第3行和第2行相同,则只返回第2行的消息。

有人能帮助我吗?

2 个答案:

答案 0 :(得分:0)

如果您通过PHP为此提供支持,那么您是否必须将条件应用于SQL查询?

在PHP中你会做这样的事情

<?php
$lastUser = '';
while (/* read next row */) {
    $user = $row['User'];
    $message = $row['Message'];
    if ($user == $lastUser) {
        $return = $message;
    } else {
        $return = "$user: $message";
    }
    $lastUser = $user;
    echo $return . '<br/>';
}

其中while()子句依赖于你的mysql适配器(迭代一些PDO结果,或只是一个mysql_fetch_array())。

答案 1 :(得分:-1)

它可能适合您,如果多个用户相同,则始终返回表中的第一个用户。 用户从表组中选择id,User,Message。