php - 修改 mySQL 查询以在使用 ASC 时在末尾显示空行,而不是在顶部

标签 php mysql

在我的 mysql 表中,contact 列要么为空,要么有日期。

$sql = "SELECT * FROM cars WHERE eidos='AETOS' order by  contact asc"; 

我的目标是在顶部显示较近的联系日期。

目前,它显示了顶部没有日期的所有行,最后那些具有联系人日期的行按升序显示,较小的日期显示在顶部。

如何在顶部显示以升序排列 contact 日期的行,后跟空行?

最佳答案

您可以在 ORDER BY 语句中使用多个条件。像这样的事情:

SELECT *
FROM Cars
WHERE eidos='AETOS'
ORDER BY contact is null, contact asc
<小时/>

编辑 - 如果值不是 null,而只是一个空字符串,您可以通过将 contact is null' 更改为 'contact = 来实现此目的''。如果您不知道,您可以随时将 coalesce 包裹起来:

SELECT *
FROM Cars
WHERE eidos='AETOS'
ORDER BY COALESCE(id,'') = '', contact asc

关于php - 修改 mySQL 查询以在使用 ASC 时在末尾显示空行,而不是在顶部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23621338/

相关文章:

php - 为什么我的图片无法上传并且检索时图片是空白的

javascript - 根据mysql日期格式格式化日期

php - 防止对具有可变(和大)列数的查询进行 sql 注入(inject)

php - 检查记录是否存在

javascript - 在客户端/服务器通信中使用这两种不同的风格有什么优缺点吗?

php - 如何在 XAMPP 上启用跨源资源共享?

php - 如何在laravel中为api后端返回JSON数据之前定义数据类型

php - 从数据库服务器端创建绘图并在客户端可视化

php - href 到数据库字段链接。

php - 如何使用 PHP 和正则表达式在字符串中的大写字母处添加空格,但将连续的大写字母保持在一起?