我需要使用 PHP 和 MySQL 根据列值过滤表中的值。这是我的数据:
数据库图像:
image_id member_id subcat_id from_day to_day
1 220 56 1 3
2 220 56 1 3
3 220 56 1 1
4 120 22 1 5
5 120 22 2 4
这是我的查询:
$qry=mysqli_query($connect,"select * from db_iamges group by member_id,subcat_id order by image_id desc");
使用我的查询,我得到如下记录:
image_id member_id subcat_id from_day to_day
3 220 56 1 1
我需要 to_day
应该始终具有更高的值。如果存在相同的 member_id 和 subcat_id
,则 to_day 将始终为较高的值,而 from_day 将始终为较小的值。预期输出应如下所示。
image_id member_id subcat_id from_day to_day
1 220 56 1 3
4 120 22 1 5
最佳答案
看来你有语法问题,因为如果你复制粘贴,你就会输入“db_iamges”。我做了一个表:
mysql> select * from prueba1;
+----------+-----------+-----------+----------+--------+
| image_id | member_id | subcat_id | from_day | to_day |
+----------+-----------+-----------+----------+--------+
| 1 | 220 | 56 | 1 | 3 |
| 2 | 220 | 56 | 1 | 3 |
| 3 | 220 | 56 | 1 | 1 |
| 4 | 120 | 22 | 1 | 5 |
| 5 | 120 | 22 | 2 | 4 |
| 6 | 120 | 22 | 2 | 9 |
| 7 | 120 | 22 | 2 | 2 |
+----------+-----------+-----------+----------+--------+
7 rows in set (0.00 sec)
还有:
mysql> select image_id, member_id, subcat_id, min(from_day), max(to_day) from prueba1 group by member_id, subcat_id order by image_id asc;
+----------+-----------+-----------+----------+-------------+
| image_id | member_id | subcat_id | from_day | max(to_day) |
+----------+-----------+-----------+----------+-------------+
| 1 | 220 | 56 | 1 | 3 |
| 4 | 120 | 22 | 1 | 9 |
+----------+-----------+-----------+----------+-------------+
2 rows in set (0.00 sec)
正在运行
编辑:已更新,因为我不明白您的主要问题。
关于php - 如何使用 PHP 和 MySQL 根据列值从表中获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41670499/