[mysql]显示名字,只有当最后一个名称不是唯一

标签: sql MySQL PHP
发布时间: 2015/6/11 23:36:46
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

如何打印姓氏只,每当它是独一无二的?其他打印的完整名称为姓氏,名字。

示例: 在数据库中,您有: Ace 佩雷斯,丹 · 佩雷斯、 詹姆斯 · 佩雷斯和丹债券。它应该显示类似:

佩雷斯 Ace 佩雷斯丹佩雷斯詹姆斯 · 邦德

因为它是一个独特的最后一个名字,它只会显示债券而不是债券丹。

这里是我的代码片段:

<?php
$display = "SELECT * FROM main ORDER BY lastName ASC, firstName ASC";
$result = @mysql_query($display)or die(mysql_error());
while($row = mysql_fetch_array($result)){
    $lastName = $row['lastName'];
    $firstName = $row['firstName'];
    $score = $row['score'];
    $totalScore = $row['totalScore'];
    $percentage = ($score/$totalScore)*100;
    echo "<tr>";
        echo "<td align='left'> $lastName </td>";
        echo "<td align='left'> $firstName </td>";
        echo "<td align='left'> $percentage </td>";
    echo "</tr>";
}
    echo "</table>";
?>

编辑: 对不起,我是相当新在这里。代码段应正确显示现在!:)

解决方法 1:

如果你有一个主键,则可以使用一个简单的查询与 CASEEXISTS ;

SELECT 
  lastname, 
  CASE WHEN EXISTS 
    ( SELECT 1 FROM test t2 WHERE t1.lastname=t2.lastname AND t1.id<>t2.id )
  THEN firstname ELSE '' END firstname
FROM test t1

SQLfiddle 可供测试

赞助商