Php 仅当姓氏不唯一时才显示名字

Php 仅当姓氏不唯一时才显示名字,php,mysql,sql,Php,Mysql,Sql,当姓氏唯一时,如何仅打印姓氏?否则,请将全名打印为“姓,名” 示例:在数据库中,您有:Ace Perez、Dan Perez、James Perez和Dan Bond。它应该显示如下内容: 佩雷斯王牌佩雷斯丹佩雷斯詹姆斯邦德 它将只显示Bond而不是Bond Dan,因为它是唯一的姓氏 以下是我的代码片段: <?php $display = "SELECT * FROM main ORDER BY lastName ASC, firstName ASC"; $result = @mysql

当姓氏唯一时,如何仅打印姓氏?否则,请将全名打印为“姓,名”

示例:在数据库中,您有:Ace Perez、Dan Perez、James Perez和Dan Bond。它应该显示如下内容:

佩雷斯王牌佩雷斯丹佩雷斯詹姆斯邦德

它将只显示Bond而不是Bond Dan,因为它是唯一的姓氏

以下是我的代码片段:

<?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>";
?>

编辑:对不起,我是新来的。现在应该可以正确显示代码段了!:

您可以通过计算姓氏上的匹配数来完成此操作。然后将其用于条件选择:


如果您有一个主键,您可以使用带有CASE和EXISTS的简单查询

选择 姓, 存在时的情况 从测试t2中选择1,其中t1.lastname=t2.lastname和t1.idt2.id 然后firstname,否则结束firstname 从测试t1开始

select m.lastname, (case when cnt > 1 then m.firstname end) as firstname
from main m join
     (select lastname, count(*) as cnt
      from main
      group by lastname
     ) ml
     on m.lastname = ml.lastname;