【MySQL】データ抽出(基本)
こんにちは😊Kintarouです。
現在エンジニア転職を目指してプログラミング学習中です👨🎓
夢はフリーランスエンジニアになって働く人にとって働く事が楽しくなるシステムを作ること!
と、愛する妻と海外移住すること🗽
プログラミングや読んでいる本のことなど、ブログに書いていきます!
twitter : https://twitter.com/ryosuke_angry
今回参考にさせて頂いたサイト様🙇♂️ dotinstall.com
MySQLでのデータ抽出方法です。簡単なものをいくつかまとめます。
全カラム出力
CREATE TABLE tweets ( id INT NOT NULL AUTO_INCREMENT, message VARCHAR(140), PRIMARY KEY (id) ); INSERT INTO tweets (message) VALUES ('Arigato'), ('arigatai'), ('Arigataya'), ('Nemutai'), ('Kanmuryo');
全カラム出力する場合は以下コマンドです。'*'がtweetsテーブルの全カラムを表しています。
SELECT * FROM tweets;
完全一致
以下のようにWHEREで条件式をつけます。
SELECT id,message FROM tweets WHERE message = 'Arigato';
完全不一致
条件式の!=は、等しく無い場合という事です。
SELECT id,message FROM tweets WHERE message != 'Arigato';
前方一致
LIKEと%を使い表現します。%は任意の文字列という解釈で大丈夫でしょう。
SELECT id,message FROM tweets WHERE message LIKE 'Ari%';
大文字小文字区別
LIKEにBINARYオプションをつける事で、大文字小文字を区別します。
id:2の'arigatai'が抽出から外れている事がわかります。
SELECT id,message FROM tweets WHERE message LIKE BINARY 'Ari%';
後方一致
%を前方につけ、任意の文字列の最後に'tai'がついているものを抽出します。
SELECT id,message FROM tweets WHERE message LIKE '%tai';
部分一致
部分一致の場合は%で囲みます。(下記の場合、'mu'が先頭や末尾にあった場合でも抽出します。)
SELECT id,message FROM tweets WHERE message LIKE '%mu%';
文字位置指定
'_'を使う事で特定文字位置を指定できます。例えば全てのmessageに'a'は入っていますが...
SELECT id,message FROM tweets WHERE message LIKE '%a%';
2文字目に'a'のあるmessageは'Kanmuryo'しかありません。
SELECT id,message FROM tweets WHERE message LIKE '_a%';
'_'は任意の文字列という解釈です。
仮に4文字目に'u'の入ったmessageを抽出したい場合は以下のようにします。
SELECT id,message FROM tweets WHERE message LIKE '___u%';
以上、どなたかの参考になれば幸いです😊