LoginSignup
8
1

More than 1 year has passed since last update.

redashで特定の文字列に一致するデータを取得する(LIKE句、%)

Last updated at Posted at 2022-04-04

概要

  • 特定の文字列に一致するデータのみを取得したい

回答

  • 取得したい文字列に対して%(ワイルドカード)を入れる
  • LIKE句を入れる
SELECT
    *
FROM
    'テーブル名'
WHERE
    'テーブル名.カラム名' LIKE '%hoge%'
  • この場合、文字列の前後に%を入れているため、部分一致になる
  • '%hoge''hoge%'などにすれば前方、後方部分一致になる

詳細(例)

やりたいことA

  • 大阪の倉庫を取得したい

テーブル例

  • 倉庫テーブル(db.storage)
id name address
1 大阪中央倉庫 大阪府大阪市hoge1-2
2 大阪北倉庫 大阪府吹田市hoge1-2
3 大阪南創庫 大阪府堺市hoge1-2
4 名古屋中央倉庫 愛知県名古屋市hoge1-2
5 東京中央倉庫 東京都千代田区hoge1-2
6 東京港倉庫 東京都港区hoge1-2

クエリ

SELECT
    *
FROM
    db.storage
WHERE
    db.name LIKE '%大阪%'

出力結果

id name address
1 大阪中央倉庫 大阪府大阪市hoge1-2
2 大阪北倉庫 大阪府吹田市hoge1-2
3 大阪南創庫 大阪府堺市hoge1-2

やりたいことB

  • 東京在籍のユーザー一覧を出したい
  • ※前提として、場所の入力がフリーテキストです

テーブル例

  • ユーザーテーブル(db.users)
id name location sex
1 A 東京 男性
2 B 神奈川 男性
3 C Tokyo 女性
4 D Tokyo Japan 女性
5 E 東京都 男性
6 F 千葉 男性
7 G 千葉県 女性
8 H 東京都港区 男性
9 I saitama 女性
10 J 神奈川県 女性

クエリ

SELECT
    COUNT(db.id) AS count
FROM
    db.users
WHERE
    db.location LIKE '%東京%'
    OR
    db.location LIKE '%Tokyo%'

出力結果

count
4

やりたいことC

  • 東京在籍でかつ、女性のユーザー一覧を出したい
  • ※前提として、場所の入力がフリーテキストです

テーブル例

  • ↑と同様のユーザーテーブル(db.users)を使います

クエリ

SELECT
    *
FROM
    db.users
WHERE
    (db.location LIKE '%東京%'
    OR
    db.location LIKE '%Tokyo%')
    AND
    db.sex = '女性'

出力結果

id name location sex
3 C Tokyo 女性
4 D Tokyo Japan 女性
8
1
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
1