Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql min函数返回不正确的结果_Mysql_Sql - Fatal编程技术网

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子句中包含一个唯一的列。如果没有唯一的列,可能应该添加一个(并将其作为主键)。