取り出す・絞り込む

INPUT · スライド

はじまり・おわりでさがす

01 / 06

`%` の場所には意味がある

前のレッスンでは '%パン%' と前後をはさんだ。でも %片側だけに置いてもいいんだ。

置く場所を変えるだけで「〜で始まる」「〜で終わる」が書き分けられるよ。

02 / 06

うしろだけ `%` で「始まる」

'こみち%' は「こみちで始まって、そのあとはなにが来てもいい」。前に % が無いので、頭がぴったり合う必要があるよ。

SELECT name FROM shops  WHERE name LIKE 'こみち%';

実行結果

こみち書房
こみちカフェ

03 / 06

前だけ `%` で「終わる」

逆に '%書房' は「書房で終わる」。うしろに % が無いので、お尻がぴったり合う必要がある。

同じ 書房 でも、はさむ位置で意味が変わるのが分かるね。

SELECT name FROM shops  WHERE name LIKE '%書房';

実行結果

こみち書房
ひなた書房

04 / 06

`%` を付け忘れると別の意味になる

気をつけたいのは、% をまったく書かない場合LIKE 'こみち' は「こみちで始まる」ではなく「ぴったりこみち」という意味になるよ。

これは = とほぼ同じ。「検索したのに1件も出てこない」というときは、まず % を書いたか確かめてみて。

SELECT name FROM shops  WHERE name LIKE 'こみち';

05 / 06

使い分けの目安

3つの形を並べてみると、ちがいがはっきりするよ。

  • 'こみち%'前方一致。名前の頭で探す(名簿や商品コード)
  • '%書房'後方一致。おしりで探す(拡張子やドメイン)
  • '%パン%'部分一致。どこかにあればいい(ふつうの検索)

迷ったら部分一致でいい。ただし、はさむ範囲が広いほど余計なものも拾いやすくなるよ。

06 / 06

当てはまらないものは `NOT LIKE`

LIKE の前に NOT を足すと、当てはまらない行が返ってくる。「パンをふくまないお店」のような条件だよ。

探す条件と、のぞく条件。どちらも書けるようになると、ほしいデータにまっすぐ近づけるよ。ここから書いてみよう。

SELECT name FROM shops  WHERE name NOT LIKE '%パン%';

実行結果

こみち書房
みなと花店
ひなた書房
こみちカフェ