WAVE Log
SELECT

すべてのカラムの値を取得する

SELECT * FROM table_name;

10件読み飛ばして30件表示する(11~40番を表示)は、「LIMIT 10, 30」となる。

SELECT * FROM table_name LIMIT 10, 30;

読み飛ばしが0の場合は省略できる。
3件表示する。

SELECT * FROM table_name LIMIT 3;

「ORDER BY {カラム名}」を指定することで任意の列でソートすることができる。
ORDER BYでカラム指定した後に「DESC」を指定すると「降順」になる。
ORDER BYのデフォルトは「昇順」。意図的に昇順と指定する場合は「ASC」を指定する。

SELECT * FROM table_name ORDER BY number DESC;

ソートの対象として 2 つのカラムを指定する場合。
最初に name カラムの値でソートを行い、 name カラムの値が同じデータに関して number カラムの値でソートを行う。カラム毎に昇順か降順かは指定できる。

SELECT * FROM table_name ORDER BY name DESC, number ASC;

ランダムにレコードを取得する場合。

SELECT * FROM table_name ORDER BY RAND ();

SELECT文に続いて「WHERE 条件式」というように条件指定をして検索する。

SELECT * FROM table_name WHERE name = 'No Name';

複数の条件式を指定する際は、論理演算子の「AND」や「OR」で接続する。

ワイルドカードを使って文字列を検索する。
アンダスコア記号(_)→任意の1文字にマッチする。
パーセント記号(%)→0個以上のの連続した文字にマッチする。

SELECT * FROM table_name WHERE birthday LIKE '199%';

カラムの値が指定した値のリストの中に一致したものを抽出。

SELECT * FROM table_name WHERE id IN(8, 38, 43);

IN のリストの順番でソートする。

SELECT * FROM table_name WHERE id IN(7, 5, 3) ORDER BY FIELD(id, 7, 5, 3);

検索欄が空欄のとき、全検索にする。

SELECT * FROM table_name WHERE CASE WHEN 検索値 = '' THEN TRUE ELSE 検索対象列 = 検索値 END;

同一単語を複数カラム(colA, colB)にわたって検索する。

SELECT * FROM table_name WHERE CONCAT(IFNULL(colA,''), IFNULL(colB,'')) = 検索値;