Mysql min函数返回不正确的结果
我有一本书的详细资料表Mysql min函数返回不正确的结果,mysql,sql,Mysql,Sql,我有一本书的详细资料表 CREATE TABLE `Book_Details` ( `bookId` int(11) NOT NULL, `book_name` varchar(45) DEFAULT NULL, `book_desc` varchar(45) DEFAULT NULL, `price` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 这个表包含三行 insert into book_deta
CREATE TABLE `Book_Details` (
`bookId` int(11) NOT NULL,
`book_name` varchar(45) DEFAULT NULL,
`book_desc` varchar(45) DEFAULT NULL,
`price` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
这个表包含三行
insert into book_details values (1,'Java for beginners','Java Book for beginners',99);
insert into book_details values (2,'Learn Advanced java','Advanced Java Book',223);
insert into book_details values (3,'Learn Practical java','Practical Java Book',78);
当我执行下面的查询时
select min(price) min_price,book_name from book_details;
我期待着低于预期的结果
min_price | book_name
-----------------------
78 | Learn Practical java
但令人惊讶的是,我的产量正在下降
min_price | book_name
-----------------------
78 | Java for beginners
有人能解释一下我为什么得到这个输出吗?我错在哪里?
我的MYsql数据库版本是5.5.38。请提供帮助。您可以获得其他列的最低价格和任意值。您使用的是一个MySQL扩展,您只需停止使用即可——始终确保
select
中所有不是聚合函数参数的列都在分组中
请尝试以下方法:
select bd.*
from book_details
order by price
limit 1;
您可以获得其他列的最低价格和任意值。您使用的是一个MySQL扩展,您只需停止使用即可——始终确保select
中所有不是聚合函数参数的列都在分组中
请尝试以下方法:
select bd.*
from book_details
order by price
limit 1;
您可以获得其他列的最低价格和任意值。您使用的是一个MySQL扩展,您只需停止使用即可——始终确保select
中所有不是聚合函数参数的列都在分组中
请尝试以下方法:
select bd.*
from book_details
order by price
limit 1;
您可以获得其他列的最低价格和任意值。您使用的是一个MySQL扩展,您只需停止使用即可——始终确保select
中所有不是聚合函数参数的列都在分组中
请尝试以下方法:
select bd.*
from book_details
order by price
limit 1;
此SELECT语句不是正确的SQL语句,但MySQL接受它。查询始终返回一行,但多本书可能具有相同的价格,并且查询可以返回任何book\u name
值。您应该使用一个SELECT,为所有具有最低价格的书籍返回多行
select price,book_name from book_details where price = (select min(price) from book_details)
此SELECT语句不是正确的SQL语句,但MySQL接受它。查询始终返回一行,但多本书可能具有相同的价格,并且查询可以返回任何book\u name
值。您应该使用一个SELECT,为所有具有最低价格的书籍返回多行
select price,book_name from book_details where price = (select min(price) from book_details)
此SELECT语句不是正确的SQL语句,但MySQL接受它。查询始终返回一行,但多本书可能具有相同的价格,并且查询可以返回任何book\u name
值。您应该使用一个SELECT,为所有具有最低价格的书籍返回多行
select price,book_name from book_details where price = (select min(price) from book_details)
此SELECT语句不是正确的SQL语句,但MySQL接受它。查询始终返回一行,但多本书可能具有相同的价格,并且查询可以返回任何book\u name
值。您应该使用一个SELECT,为所有具有最低价格的书籍返回多行
select price,book_name from book_details where price = (select min(price) from book_details)
请注意,即使在这个示例中,如果多行具有相同的价格,SQL标准也不能保证将获得哪一行。如果需要一致性,请在ORDERBY子句中包含一个唯一的列。如果没有唯一的列,可能应该添加一个(并使其成为主键)。请注意,即使在本例中,如果多行具有相同的价格,SQL标准也不能保证将获得哪一行。如果需要一致性,请在ORDERBY子句中包含一个唯一的列。如果没有唯一的列,可能应该添加一个(并使其成为主键)。请注意,即使在本例中,如果多行具有相同的价格,SQL标准也不能保证将获得哪一行。如果需要一致性,请在ORDERBY子句中包含一个唯一的列。如果没有唯一的列,可能应该添加一个(并使其成为主键)。请注意,即使在本例中,如果多行具有相同的价格,SQL标准也不能保证将获得哪一行。如果需要一致性,请在ORDERBY子句中包含一个唯一的列。如果没有唯一的列,可能应该添加一个(并将其作为主键)。