php - 如何使用 PHP 和 MySQL 根据列值从表中获取数据

标签 php mysql

我需要使用 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/

相关文章:

php - 如何追踪重复数据

mysql - 我可以告诉Mysql哪些索引保留在内存中而不管其他索引吗?

php - 在 PHP echo 中嵌入 javascript

php - 如何在单个查询 Zend Framework 中从相关表返回行

php - Azure App Service 中的 Wordpress 无法通过符号链接(symbolic link)读取文件

mysql - 配置单元基本分组和结束(分区由)函数遇到错误

php - 从 3 个表中选择并匹配数据

mysql - Group By 不在 SQL 中按列聚合分组

Windows 上的 Python 3.3.2 - MysqlDB 和 pymysql

php - 通过不同的页面传递 URL 参数