1

IDと値の2つの基本的なもので構成されるMySqlテーブルがあります。私のページでそれを表示するには、たとえば、逆の順序で最後の100行を選択する必要があります。したがって、誰かがそれにデータを入れていると想像してください。

Id, value
1, 10
2, 9
3, 21
4, 15

最後の「3」行(LIMIT + ORDER句)を選択する必要がありますが、このようにはなりません:4,3,2ですが、次のようになります:2,3,4。

私はコードでそれを行う方法を知っていますが、Mysqlでそれを行うための簡単な解決策があるかもしれません。私にはわかりません。ありがとう

私のSQLクエリは今このようなものです:

SELECT `Data`.`id`, `Data`.`log_id`, `Data`.`value`, `Data`.`created` FROM `control_panel`.`datas` AS `Data` WHERE `Data`.`id` > 1000 AND `Data`.`log_id` = (2) ORDER BY `Data`.`id` DESC LIMIT 100
4

3 に答える 3

4

最初の部分を副選択でラップする必要がありますORDER BY。これにより、限定された選択が降順で返されます。次に、その結​​果を昇順で外部クエリに並べ替えることができます。

SELECT
    a.*
FROM
    (
        SELECT id, value
        FROM tbl
        ORDER BY id DESC
        LIMIT 3
    ) a
ORDER BY
   a.id
于 2012-07-03T03:55:31.407 に答える
3

これを行う1つの方法は、副選択を使用することです。

SELECT *
FROM (SELECT * FROM table_name ORDER BY id DESC LIMIT 3) tmp
ORDER BY id ASC
于 2012-07-03T03:49:23.430 に答える
0

単に

 SELECT t.*
 (SELECT * FROM table_name 
      ORDER BY column_name DESC 
      LIMIT 0,3) t
 ORDER BY t.column_name ASC

DESC降順、昇順ASCに使用

于 2012-07-03T05:05:13.953 に答える