LoginSignup
20
17

More than 5 years have passed since last update.

MySQLのJOINにLIKEを使う方法

Last updated at Posted at 2018-04-13

どうもmiyachi(@_38ch)です。
MySQLのJOINにLIKEを使う方法をご紹介します。

例えば以下のような二つのテーブルがあったとします。

table1: user_info

user_id name address
1 小田常雄 香川県 仲多度郡多度津町 東浜 1-14-12
2 松井昭司 鳥取県 米子市 淀江町小波 4-16-13
3 田中美涼 大阪府 守口市 大久保町 3-3-10
4 有賀沙也佳 宮城県 刈田郡七ヶ宿町 矢立 1-13
5 寺島勇次 大分県 中津市 片端町 4-5

table2: prefecture

pref_id pref_name pref_population
1 北海道 5,348,102
2 青森 1,278,581
... ... ...
46 鹿児島 1,625,434
47 沖縄 1,447,134

で、 user_infoのaddressを見て、prefectureのpref_nameでLIKE検索かけて、人口をJOINさせてあげたい。(ここでLEFT()でaddressから都道府県名取ればいいじゃんって話は受け付けません:no_good_tone1:

SQLはこうやって書くらしい


SELECT 
  t1.user_id,
  t1.user_name,
  t1.address,
  t2.pref_population
FROM 
  user_info t1
LEFT JOIN
  prefecture t2
  ON t1.address LIKE CONCAT(t2.pref_name, '%')

まさかCONCATを使って、LIKE検索の %keyword% のやつを作るとは・・・

20
17
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
20
17