首页 > 解决方案 > 如何在 mysql 中正确设置 MIN 和 MAX?

问题描述

我有以下查询:

SELECT DISTINCT 

MIN(re1.name, re2.name) AS name1, 
       MAX(re1.name, re2.name) AS name2


FROM Rating ra1 JOIN Reviewer re1
ON re1.rID = ra1.rID
CROSS JOIN
Reviewer re2 JOIN Rating ra2 ON re2.rID = ra2.rID
WHERE ra1.mID = ra2.mID
AND re1.rID != re2.rID
AND re1.rID > re2.rID
ORDER BY name1, name2;

当我在当前使用的学习平台(使用 sqlite)中运行查询时,它会按字母顺序计算耦合名称列表。

list_of_names

但是,如果我在 x86_64 上使用 mysql Ver 8.0.26 for Linux 在 vscode 中运行相同的查询,则会收到以下错误:

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 3 行的 ', re2.name) AS name1, MAX(re1.name, re2.name) AS name2 FROM Rating ra1' 附近使用正确的语法

mysql中的MIN MAX使用方式不同吗?如何使用 mysql 运行相同的查询?

谢谢

标签: mysqlsqlmaxmin

解决方案


MAX()用于检查同一列,跨多行聚合。我想你想要这个GREATEST()功能。


推荐阅读