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

MySQLでユーザー設定変数を比較する方法は?

    はい、派生テーブルで十分です。以下の内側の選択ブロックは派生テーブルです。そして、すべての派生テーブルには名前が必要です。私の場合、xDerived

    戦略は、派生テーブルに列名の使用をクレンジングさせることです。派生したチャンクから出てくるのは、numという名前のクリーンな列です。 アウターセレクトは自由に使用できます。

    スキーマ

    create table employee
    (   id int auto_increment primary key,
        experience varchar(20) not null
    );
    
    -- truncate table employee;
    insert employee(experience) values 
    ('4-5'),('7-1'),('4-1'),('6-5'),('8-6'),('5-9'),('10-4');
    

    クエリ

    select id,experience,num 
    from 
    (   SELECT id,experience, 
        CONVERT(SUBSTRING_INDEX(experience,'-',1),UNSIGNED INTEGER) AS num  
        FROM employee  
    ) xDerived 
    where num>=7;
    

    結果

    +----+------------+------+
    | id | experience | num  |
    +----+------------+------+
    |  2 | 7-1        |    7 |
    |  5 | 8-6        |    8 |
    |  7 | 10-4       |   10 |
    +----+------------+------+
    

    @numに注意してください コンセプトに誤りがありましたが、うまくいけば、あなたが上でやろうとしていることを解釈しました。

    また、すべてのサンプルデータが返されるため、3ではなく7を使用しました。これは、機能することを示したかったのです。



    1. エミュレートされたプリペアドステートメントと実際のプリペアドステートメント

    2. SQLServerデータベースレプリケーション

    3. 新しいwpdbを介してデータベースを変更した後、wp_queryを使用します

    4. 同じ列値を持つmysqlテーブルから特定の行を削除するにはどうすればよいですか?