LoginSignup
8
5

More than 5 years have passed since last update.

【SQL】カラムの文字列が部分的に一致するレコードを検索

Posted at

サンプルテーブル

Column1 Column2
ABCDEFG This
ACCDEEE column
ABCDEFH will
ABCXYXZ be
ZBCDEFZ left

テーブル内の Column1 にある文字列の部分的に一致するレコードを抽出
例えば、
・先頭から ABCDEF まで一致するレコード
・2文字目から BCDEまで一致するレコード
の事です

先頭からABCDEFまで一致 SQL

substring.sql
SELECT
    s.*
FROM
    sample s
WHERE
    SUBSTRING(s.Column1,1,6) IN (
    SELECT
        SUBSTRING(s2.Column1,1,6) c1
    FROM
        sample s2
    GROUP BY
        SUBSTRING(s2.Column1,1,6)
    HAVING
        COUNT(c1) > 1
    );

一度 GROUP BY で一致するレコードを抽出してからデータを検索

Column1 Column2
ABCDEFG This
ABCDEFH will

2文字目から BCDEまで一致 SQL

substring2.sql
SELECT
    s.*
FROM
    sample s
WHERE
    SUBSTRING(s.Column1,2,4) IN (
    SELECT
        SUBSTRING(s2.Column1,2,4) c1
    FROM
        sample s2
    GROUP BY
        SUBSTRING(s2.Column1,2,4)
    HAVING
        COUNT(c1) > 1
    );
Column1 Column2
ABCDEFG This
ABCDEFH will
ZBCDEFZ left

SQLも奥が深いですね・・・

8
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
5