infoMore 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
テーブル例
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
- 東京在籍のユーザー一覧を出したい
- ※前提として、場所の入力がフリーテキストです
テーブル例
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%'
出力結果
やりたいこと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 |
女性 |
Register as a new user and use Qiita more conveniently
- You get articles that match your needs
- You can efficiently read back useful information
- You can use dark theme
What you can do with signing up