sql >> データベース >  >> RDS >> Mysql

複数行の最大値に基づいて単一行を選択する方法

    存在しないを使用できます 古いレコードを除外するサブクエリ:

    select  *
    from    YourTable yt
    where   not exists
            (
            select  *
            from    YourTable older
            where   yt.name = older.name and 
                    (
                        yt.major < older.major or
                        yt.major = older.major and yt.minor < older.minor or
                        yt.major = older.major and yt.minor = older.minor and
                            yt.revision < older.revision
                    )
            )
    

    これはMySQLで次のように書くこともできます:

    select  *
    from    YourTable yt
    where   not exists
            (
            select  *
            from    YourTable older
            where   yt.name = older.name and 
                      (yt.major,    yt.minor,    yt.revision) 
                    < (older.major, older.major, older.revision)
            )
    


    1. PHP-MySQLはストアドプロシージャからoutパラメータの値を取得します

    2. SQLite式ベースのインデックス

    3. mysqlクエリの最大実行時間を設定するにはどうすればよいですか?

    4. PHPおよびMySQLでSphinxを使用するためのガイド