タグ:MySQLに一致する記事

CASE式の実践と応用:WHERE句で分岐せずSELECTで分ける理由

suu に投稿

前回ではCASE式の書き方を学びました。 ここからは、実際にどう使うのか、また「なぜWHERE句ではなくSELECTで分岐するのか」を掘り下げます。

WHEREで分ける vs SELECTで分ける

SQLの条件分岐には、2つの考え方があります。

WHERE句で行そのものを絞り込む

SELECT句(CASE)で値だけを変える

例えば「男性は‘男性’、女性は‘女性’と表示したい」というだけなら、 WHEREを使うよりもCASEの方がシンプルです。

MySQLのCASE式とは? 基本構文・使い方を初心者にわかりやすく解説

suu に投稿

SQLを学び始めてしばらくすると、「条件によって表示内容を変えたい」という場面に出会う可能性があります。 たとえば「点数が90以上なら“優”、それ以外なら“良”や“可”を出したい」といったケースです。 このとき活躍するのが、CASE式です。

CASE式は、SQLの世界でいうjavaの「if文」や「switch文」のようなものです。 1つの条件を見て、「このときはこれ、それ以外はこれ」といった分岐を実現できます。 特にSELECT文の中で使うと、結果を人が見やすい形に変えたり、分類したりできます。

CASE式の書き方は2パターンあります。

MySQLのCASE式には、次の2種類があります。 これはMySQL公式マニュアルでも説明されています。(dev.mysql.com )

MySQLが起動しない際の対処法一覧

トビウオ に投稿

タグ

概要

 エラーが起きるたびにググりまくるのがいい加減嫌になったのでまとめました。
 急いでいる時はDocker公式のMySQLイメージを使えばいいと思います。
(Dockerの公式MySQLイメージの使い方を徹底的に解説するよ)

テーブル名が特定の文字列で始まるテーブルだけdumpする方法メモ

ナカちゃん に投稿

タグ

例として field_ で始まるテーブルのみダンプする場合は

# mysql -u <ユーザ名> -p -N information_schema -e "SELECT table_name FROM tables WHERE table_schema='<スキーマ名>' AND table_name LIKE 'field_%'" > field_tables.txt
# mysqldump -u <ユーザ名> -p <スキーマ名> `cat field_tables.txt` > anken_content_type_dump.sql
# rm field_tables.txt

・・・というようにする。