【发布时间】:2019-10-04 17:44:58
【问题描述】:
我有一张这样的桌子CLIENTS:
------------------------------------------------
| ID | Name | Surname | Company |
------------------------------------------------
| 1 | John | Doe | |
------------------------------------------------
| 2 | | | Company 1 |
------------------------------------------------
| 3 | Mark | Blue | Company 2 |
------------------------------------------------
| 4 | | | Company 3 |
------------------------------------------------
| 5 | Jim | Yellow | |
实际上我有一个脚本 PHP,它返回结果 SELECT * FROM CLIENTS ORDER BY Company ASC。按 ASC 字母顺序检索结果
结果被插入(用于查看)表中,其中列NAME or COMPANY 是Company(如果已编译)或Surname + Name(如果已编译姓名和姓氏)
<?php
foreach ( $row as $res )
if ( $res['Company'] != "" ) { echo $res['Company']; } else { echo $res['Surname'] . " " . $res['Name']; }
?>
表格:
<table>
<tr>
<th>NAME or COMPANY</th>
<th>others info</th>
</tr>
<tr>
<td>Doe John</td>
<td> </td>
</tr>
<tr>
<td>Yellow Jim</td>
<td> </td>
</tr>
<tr>
<td>Company 1</td>
<td> </td>
</tr>
<tr>
<td>Company 2</td>
<td> </td>
</tr>
<tr>
<td>Company 3</td>
<td> </td>
</tr>
</table>
但我的结果不正确,因为有 2 条记录为空 Company 值
Company 不是必填字段:如果Company 为空,则需要编译Name 和Surname 字段。
在这种情况下,我需要根据此检查修改我的脚本以通过新的动态列返回:如果 Company 已编译,则 NEWCOLUMN = Company 否则 NEWCOLUMN = Surname + " " + Name
那么
SELECT * FROM CLIENTS ORDER BY NEWCOLUMN
我怎样才能做到这一点?
【问题讨论】:
-
我们如何知道没有名字的公司和没有名字的公司之间的关系?
标签: mysql sql sql-order-by