【问题标题】:Can you return the max value of a column multiple times in multiple rows in a MySQL SELECT statement?您可以在 MySQL SELECT 语句中的多行中多次返回列的最大值吗?
【发布时间】:2016-11-17 02:20:22
【问题描述】:

当我运行以下语句时:

SELECT * FROM templates ORDER BY templateID

我得到以下信息:

+---------+-----------+-------------------+
| Template| Name      | NumberOfColumns   |
+---------+-----------+-------------------+
|       1 |     blue  |                 1 |
|       2 |     red   |                 2 |
|       3 |     green |                 4 |
+---------+-----------+-------------------+

当我执行以下操作时:

从模板中选择 *, max(NumberOfContentBlocks);

我得到以下信息:

+---------+-----------+-------------------+
| Template| Name      | NumberOfColumns   |
+---------+-----------+-------------------+
|       1 |     blue  |                 4 |
+---------+-----------+-------------------+

是否有 SELECT 语句会返回以下内容?:

+---------+-----------+-------------------+
| Template| Name      | NumberOfColumns   |
+---------+-----------+-------------------+
|       1 |     blue  |                 4 |
|       2 |     red   |                 4 |
|       3 |     green |                 4 |
+---------+-----------+-------------------+

【问题讨论】:

    标签: mysql select max


    【解决方案1】:

    您可以在选择列表中放置一个标量子查询:

    SELECT Template, Name, 
      (SELECT MAX(NumberOfColumns) FROM templates) AS NumberOfColumns 
    FROM templates ORDER BY templateID;
    

    标量意味着只要保证子查询返回一行和一列,就可以放入标量上下文(如选择列表的一列)。

    【讨论】:

    • 非常感谢比尔。这正是我所需要的。效果很好。
    猜你喜欢
    • 2016-07-02
    • 1970-01-01
    • 2012-06-06
    • 2023-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多