sql >> データベース >  >> Database Tools >> phpMyAdmin

私のmysqlから最新の5行を選択する方法

    結果を注文し、制限を設定する必要があります。

    日時が注文したいものであると仮定します:

    $query = "
        SELECT 
            lat, 
            lng, 
            DATE_FORMAT(datetime,'%W %M %D, %Y %T') AS datetime 
        FROM markers1 WHERE 1
        ORDER BY datetime DESC
        LIMIT 5
    ";
    

    編集: OPのコメントに答えるには、「私が取得する結果は、最初のクエリの行50で開始され、その後に49,48,47,46が続きます。この開始行を行46,47,48,49,50で取得できる可能性はありますか?」

    これは、PHPの結果を使用して、行をフェッチして配列に格納し、配列を逆にすることで実行できます。 mysqlの結果リソースを逆に効率的にループできるとは思いません。

    SQLクエリでこれを行うには、元のクエリを使用して一時テーブルを作成する必要があります。

    $query = "
        SELECT 
            lat,
            lng,
            DATE_FORMAT(datetime,'%W %M %D, %Y %T') AS datetime 
        FROM (
            SELECT 
                lat, 
                lng, 
                datetime
            FROM markers1 WHERE 1
            ORDER BY datetime DESC
            LIMIT 5
        ) AS tmp_markers
        ORDER BY datetime ASC
    ";
    

    最初のクエリの結果は、日時の昇順で並べ替えられた新しいクエリを検索するためのテーブルとして使用されます。もう一度並べ替えるには日時フィールドが必要なため、外部クエリにDATE_FORMATを適用する必要がありました。



    1. SSMSの#Temp_TableからSELECT*の列リストを展開する方法はありますか?

    2. phpMyAdminエラー:mbstring拡張機能がありません。 PHP構成を確認してください

    3. Debian9でのApacheを使用したphpMyAdminのインストールと保護

    4. 条件に基づいてスクリプトを生成する