php - 从 mysql 选择多行,但显示每个 id 的一个结果

标签 php mysql

我有这样的 mysql 表

id   id_p   name    date
1     1     test1    2015-01-01
2     1     test1    2015-02-02
3     2     test2    2015-03-01
4     2     test2    2014-03-05

按日期选择

select name, date from table1 where date <= (now() - interval 6 month)

结果是

name   date
test1  2015-01-01
test1  2015-02-02
test2  2015-02-02
test2  2014-03-05

如何得到这个结果如何限制

name   date
test1  2015-01-01
test2  2015-02-02

感谢您的帮助

最佳答案

您应该使用GROUP BY,这意味着您的字段需要正确设置,否则mysql不知道要返回哪个值。在本例中,我将您的 date 字段包装在 MIN 函数中,因为您似乎想要最低/最早的日期。

因此,根据您的情况,请像这样修改查询:

SELECT `name`, MIN(`date`) as `date`
    FROM table1 
    WHERE `date` <= (now() - interval 6 month)
    GROUP BY `name`

关于php - 从 mysql 选择多行,但显示每个 id 的一个结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35303516/

上一篇:MySQL 通配符查询

下一篇:MySQL连接语句

相关文章:

返回整数(32 位 int)的 PHP 哈希函数

mysql - 如何漂亮地打印 Hive 输出

php - 选择其中列 1 = 列 2

php - 尝试获取登录错误消息/验证以在登录表单上工作?

PHP, PDO, MySQL & InnoDB,如何用FK更新/删除记录?

php - Symfony 2.3 无法使用 php composer.phar update 删除文件

mysql - 重写条件总和和计数查询/日期范围比较的更好方法

mysql - 如何将 'AND' 部分添加到 Joomla Jdatabase 查询?

php - 检查字符串是否包含数据库中的用户名以使消息变为绿色

返回 JSON 对象的 PHP 查询