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

MySQLから結果を返すときの数値順

    これはデータベース設計の問題です。トピック番号は整数として保存する必要があります。デザインを変更できない場合は、代わりに次のクエリを試してください:

    SELECT title
    FROM table1
    ORDER BY CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(title, ' ', 2), ' ', -1)
                  AS UNSIGNED);
    

    結果:

    'topic 1 foo'
    'topic 2 bar'
    'topic 10 baz'
    

    テストデータ:

    DROP TABLE IF EXISTS table1;
    CREATE TABLE table1 (title VARCHAR(100) NOT NULL);
    INSERT INTO table1 (title) VALUES
    ('topic 1 foo'),
    ('topic 2 bar'),
    ('topic 10 baz');
    


    1. SQLテーブルの行値間の変更を検出してバインドするにはどうすればよいですか?

    2. エラー:TCPプロバイダー:エラーコード0x2746。ターミナルを介したLinuxでのSQLセットアップ中

    3. Oracleでクエリを繰り返す方法

    4. HasManyの関係で注文するLaravel5