MySQL(その6 like句,ワイルドカード,limit)

その5から続きます。

1:パターンマッチングによる絞り込み(like)

例:漢字の中から始まる苗字のユーザー一覧を取得したい!

select * from users where last_name like ‘中%’;

中を含むユーザー一覧がほしい

select * from users where last_name like '%中%'

子で終わる名前のユーザー一覧がほしい

select * from users where first_name like '%子';

子で終わる3文字の名前のユーザー一覧がほしい。

select * from users where first_name like '__子';

※ポイント

like句を使う。構文は

serect 列1,・・・, from テーブル名 where 列名 like ワイルドカード文字;

 2:※ワイルドカード文字

ワイルドカード文字で文字列のパターンを指定することができる

1.’%’・・・0文字以上の任意の文字列

2.’_’・・・任意の1文字

3:取得件数を制限する limit句

例題)10個だけ商品を取得したい!

select * from products limit 10;

明示的に最初から10件取得する場合

select * from products limit 0, 10;

類題)11から10個(20まで)取得したい

select * from products limit 10, 10;

実務でデータベースからデータを本番のデータベースを直接操作する場合は 負荷のかかるクエリ送るとデータベースが 止まってしまいサービスが停止して 事故になることがあるらしいので注意!

理想は本番のデータベースに直接アクセスするのではなく データ解析専用の データベースを用意して、負荷が低い夜間に1日1回本番環境と同期をかけたりする。

MySQLWorkbenchでは最初からデータ取得制限1000となっている。通常の業務でも制限は1000ぐらいでやるそうだ

例:男性ユーザーの一覧を取得したい!

補足:取得する件数は10件を設定。取得する行は、id,last_name.gender.ER図で確認

ヒント;limit句を使う

select 列名 from テーブル名 where 列名 = 条件 limit 件数;

・性別:users.genderを参照 1:男性 2:女性

select id, last_name, gender from users where users.gender = 1 limit 10

※ポイント

users.gender = 1 で男性のみ表示するように指定している

その7に続きます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です