0
+-------------+--------------+------+-----+---------+----------------+
| Field       | Type         | Null | Key | Default | Extra          |
+-------------+--------------+------+-----+---------+----------------+
| id          | int(11)      | NO   | PRI | NULL    | auto_increment |
| businees_id | varchar(500) | YES  |     | NULL    |                |
| rating      | int(11)      | YES  |     | NULL    |                |
| author_name | varchar(60)  | YES  |     | NULL    |                |
| author_url  | varchar(100) | YES  |     | NULL    |                |
| review      | text         | YES  |     | NULL    |                |
| review_date | datetime     | NO   |     | NULL    |                |
+-------------+--------------+------+-----+---------+----------------+

这是我的查询:

Select * from mytable limit 0,3

以上是我的表的结构。我需要为所有企业选择最后三个评论。

谁能帮我?

4

2 回答 2

1

这个查询应该这样做。table_name是您的表的名称。ORDER BY review_date DESC指示 MySQL 按日期最新-> 最旧排序。LIMIT 3将结果截断为前三个。

SELECT * FROM table_name ORDER BY review_date DESC LIMIT 3

于 2013-02-14T16:47:29.520 回答
0

请参阅如何在 SQL 中选择每个组的第一行/最少行/最多行

set @num := 0, @businees_id := '';

select type, variety, price
from (
   select id, businees_id, rating,  author_name, author_url, review, review_date,
      @num := if(@businees_id = businees_id, @num + 1, 1) as row_number,
      @businees_id := businees_id as dummy
  from mytable
  order by businees_id, review_date DESC
) as x where x.row_number <= 3;
于 2013-10-05T07:55:37.457 回答