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

mysql select in list with regexp / substring

    これは、厄介な厄介なunsargableslow を使用したJOIN操作です。 ON 状態。

    SELECT B.description
      FROM A
      JOIN B ON B.description LIKE CONCAT('%', A.code, '%')
    

    'needle' LIKE '%haystack%'なので、時間がかかります つまり、MySQLは、針を見つけるために干し草の山の中のすべてを調べる必要があります。

    一方、'needle' LIKE 'haystack%' (先頭の%なし )できます インデックスを使用します。したがって、これがデータで機能する場合は、それを使用する必要があります。

    SELECT B.description
      FROM A
      JOIN B ON B.description LIKE CONCAT('FAX', A.code, '%')
    


    1. Oracle-特定の行の実際のサイズを取得するにはどうすればよいですか?

    2. フィールドが条件に一致しないテーブルから選択する

    3. Pythonを使用したMySqlテーブルの列の順序付け

    4. MySQLユーザーを特定のテーブルに制限するにはどうすればよいですか?