-
MySQLでカンマ区切りの列に引用符を含める方法
MySQLでは、カンマ区切りで格納された文字列の各要素を引用符(シングルクォート)で囲みたいケースがあります。例えば、CSV形式の名前リストをSQLのIN句などで使える形に変換したい場合です。この記事では、CONCAT()関数とREPLACE()関数を組み合わせて、カンマ区切りの列に引用符を含める方法を解説します。1. サンプルテーブルの作成まず、テスト用のテーブルを作成します。mysql> create table DemoTable1407 -> ( -> Name text -> ); Query OK, 0 rows affected (
-
MySQLで列の値がNULLかNOT NULLかを確認する方法
MySQLでは、IS NOT NULL演算子を使うことで、列の値がNULLかどうかを簡単に確認できます。この記事では、基本的な構文と実際の使用例をわかりやすく解説します。基本構文select yourColumnName IS NOT NULL from yourTableName;このクエリは、指定した列の値がNULLでなければ 1 を、NULLであれば 0 を返します。テーブルの作成まず、動作確認用のサンプルテーブルを作成しましょう。mysql> create table DemoTable1408 -> ( &nbs
-
MySQLで重複するvarchar値をエラーなしで挿入する方法
MySQLでは、UNIQUE制約が設定されたカラムに重複した値を挿入しようとすると、「Duplicate entry」エラーが発生します。本記事では、UNIQUEインデックスを削除することで、重複するvarchar値をエラーを表示させずに挿入する方法を、実際のサンプルコードとともに解説します。 手順1:UNIQUEキー付きのサンプルテーブルを作成する まず、FirstNameカラムにUNIQUEキーを設定したテーブルを作成します。 mysql> create table DemoTable1409 -> ( -> FirstName varchar(20),
-
MySQLで14日前より新しい日付のレコードを取得するクエリの書き方
この記事では、MySQLを使って「14日前より新しい日付」を持つレコードを抽出する方法を解説します。CURDATE()関数とDATE_SUB()関数を組み合わせることで、簡単に目的のデータを取得できます。テーブル作成から順に見ていきましょう。 1. サンプルテーブルの作成 まず、日付を格納するカラムを持つテーブルを作成します。 mysql> create table DemoTable1392 -> ( -> ArrivalDate date -> ); Query OK, 0 rows affected (0.43 sec) 2. レコード
-
【MySQL】LIKE句で「a」が3つ以上含まれるレコードを抽出する方法
MySQLで「a」が3つ以上含まれるレコードを抽出する方法MySQLで、ある文字列の中に特定の文字が複数回出現するレコードを検索したい場合は、LIKE句とワイルドカード「%」を組み合わせます。「%」は任意の0文字以上の文字列に一致するため、「a」が3つ以上含まれる文字列は「%a%a%a%」というパターンで表現できます。基本構文SELECT * FROM テーブル名 WHERE カラム名 LIKE %a%a%a%;サンプルテーブルの作成それでは、実際に動作を確認していきましょう。まずは国名を格納するテーブルを作成します。mysql> create table DemoTable1393
-
MySQLで数値を3桁区切り・小数点以下2桁の金額形式にフォーマットする方法
MySQLのFORMAT()関数で数値を見やすい金額形式に整えるMySQLでは、FORMAT()関数を使うことで、数値を3桁ごとにカンマ(,)で区切った読みやすい形式に整形できます。第2引数に小数点以下の桁数を指定すれば、金額データなどを「1,234.50」のような見慣れたフォーマットで表示することも可能です。ここでは、実際にテーブルを作成し、FORMAT()関数を使って「3桁区切り・小数点以下2桁」の形式に変換する手順を解説します。1. テーブルを作成するまずは金額を格納するためのサンプルテーブルを作成しましょう。ここではDECIMAL型のカラムを用意します。mysql> create
-
MySQLで1つのクエリを使って複数の列をまとめて並べ替える方法
MySQLで複数の列の値を比較しながらレコードを並べ替えたい場合は、ORDER BY GREATEST()を使用します。GREATEST()は指定した複数の列の中から最も大きい値を返す関数であり、その値を基準にソートを行うことができます。それでは、実際にサンプルテーブルを作成して確認していきましょう。1. テーブルの作成まず、3つのint型カラムを持つテーブルを作成します。mysql> create table DemoTable1395 -> ( -> Value1 int,&nbs
-
MySQLの単一クエリで複数テーブルのNULL値を除外し、NULL以外のレコード数を取得する方法
この記事では、MySQLにおいて単一のクエリを使って、別々の複数テーブルからNULL値を除外し、NULL以外(NOT NULL)のレコード数を取得する方法を解説します。ポイントは、COUNT(カラム名)を使用することです。COUNT関数にカラム名を指定すると、そのカラムがNULLである行は自動的にカウントから除外されるため、サブクエリを組み合わせることで各テーブルの有効なレコード数を一度に取得できます。1. 最初のテーブル(DemoTable1)を作成するまず、CREATE TABLE文で最初のテーブルを作成します。mysql> create table DemoTable1->
-
MySQLで複数のカラムを1つの新しいカラムに連結する方法
MySQLでは、CONCAT()関数を使うことで、テーブル内の複数のカラム(列)の値を簡単に連結し、1つの新しいカラムとして取得できます。ここでは、サンプルテーブルの作成からデータの挿入、実際にカラムを連結するクエリの実行までの手順を順番に解説します。1. サンプルテーブルの作成まず、CREATE TABLE文を使用してテーブルを作成します。mysql> create table DemoTable1396 -> ( -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> Name varchar(40
-
MySQLでvarchar型の日付レコードを現在の日付と比較する方法
MySQLでは、varchar型として保存された日付を現在の日付と比較する場合、STR_TO_DATE()関数を活用するのが効果的です。文字列形式の日付をそのまま比較すると、期待通りの結果が得られないことがあるため、まず適切な日付型に変換してから比較を行いましょう。基本構文varchar型の日付カラムと現在の日付を比較する際の基本的な構文は以下の通りです。select * from yourTableName where str_to_date(yourColumnName,yourFormatSpecifier) > curdate();サンプルテーブルの作成まず、varchar型の日
-
MySQLで点数(マーク)からパーセンテージを求める方法
MySQLで点数(マーク)からパーセンテージを求める方法 この記事では、MySQLに保存された点数データから平均のパーセンテージを計算する方法を解説します。SUM関数とCOUNT関数を組み合わせて平均値を算出し、CONCAT関数で「%」記号を付けて表示するまでの手順を、サンプルコードとともに順番に見ていきましょう。 1. テーブルを作成する まず、点数を格納するためのテーブルを作成します。 mysql> create table DemoTable1398 -> ( -> Marks int -> ); Query OK, 0 rows aff
-
新しいレコードを追加せずにMySQLで次の主キー(AUTO_INCREMENT)を取得する方法
レコードを追加せずに次の主キーを取得することは可能です「次の主キーを取得するには、どうしても新しいレコードを追加しなければならないのでは?」と考えられがちですが、実はMySQLではレコードを追加せずに次の主キー(AUTO_INCREMENT値)を確認することが可能です。ここでは、その具体的な手順をサンプルとともに解説します。1. サンプルテーブルを作成するまず、AUTO_INCREMENT付きの主キーを持つテーブルを作成しましょう。mysql> create table DemoTable1399 -> ( -> StudentId int NOT NULL
-
MySQLテーブルに候補キー(Candidate Key)を実装する方法
候補キー(Candidate Key)とはリレーショナルデータベースにおいて、1つのテーブル(リレーション)には1つ以上の候補キーが存在する可能性があります。その中で実際に主キーとして選択されたものが「プライマリキー(Primary Key)」です。すべての候補キーは主キーの候補となり得るため、主キーの候補となるキーを「候補キー(Candidate Key)」と呼びます。MySQLで候補キーを実装するには、UNIQUEキー制約を活用します。複数のカラムに対してユニークキーを設定することで、それぞれのキーが候補キーとして機能します。基本的な構文は以下の通りです。alter table テーブル名
-
MySQLで上位2つの最高スコアを取得するクエリの書き方
MySQLで上位2つの最高スコアを取得するには、集計関数 MAX() を使用します。GROUP BY句でプレイヤーIDごとにグループ化し、ORDER BY句で降順に並べ替えることで、最も高いスコア順に結果を表示できます。 1. サンプルテーブルを作成する まず、以下のようにテーブルを作成します。 mysql> create table DemoTable1383 &;-> ( &;-> Id int, &;-> PlayerScore int &n
-
MySQLの1つのINSERT文で複数行をまとめて挿入する方法
はじめにMySQLでは、INSERT文を何度も実行しなくても、1つのクエリで複数の行(レコード)を一度に挿入することができます。VALUES句の後にカンマ区切りで複数の値セットを記述するだけで、効率よくデータを登録できるため、大量の初期データ投入などで非常に便利です。この記事では、実際のSQL例を使いながら、複数行を一括挿入する手順をわかりやすく解説します。1. テーブルを作成するまず、サンプル用のテーブルを作成します。StudentIdはAUTO_INCREMENT付きの主キーとして定義し、レコード追加時に自動的に連番が採番されるようにしています。mysql> create table
-
【MySQL】1つのクエリで複数の行を取得する方法:LIKE演算子の活用
はじめに1つのMySQLクエリで複数の行(レコード)を取得したい場合には、LIKE演算子を使用します。LIKE演算子によるパターンマッチングを活用すれば、条件に合致する複数の行を一度のクエリで効率的に抽出できます。ここでは、まずサンプル用のテーブルを作成しましょう。mysql> create table DemoTable1385 -> ( -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> Name varchar(20) -> );Query OK, 0 rows affected (0.
-
MySQLで重複する値ごとに対応する値をハイフン区切りで結合する方法
MySQLで重複データをハイフン区切りで1行にまとめるにはテーブル内に同じ値を持つ行が複数存在する場合、それらに対応する別のカラムの値を1つの文字列にまとめて表示したいことがあります。このようなときに活躍するのが、GROUP_CONCAT()関数です。GROUP_CONCAT()を使えば、GROUP BYでグループ化した各グループの値を連結でき、SEPARATOR句で区切り文字(ここではハイフン)を自由に指定できます。それでは、実際の手順を見ていきましょう。1. サンプルテーブルを作成するまず、テーブルを作成します。mysql> create table DemoTable1386&nb
-
【MySQL入門】ビュー(VIEW)の内容を表示する方法をわかりやすく解説
MySQLでは、作成済みのビュー(VIEW)も通常のテーブルと同じように SELECT 文を使って内容を確認できます。この記事では、実際にテーブルとビューを作成しながら、ビューの中身を表示する手順を初心者向けに解説します。 ビューの内容を表示する基本構文 ビューの内容を表示する構文は、通常のテーブルに対するSELECT文とまったく同じです。FROM句にビュー名を指定するだけです。 select * from yourViewName; このように、ビューは仮想的なテーブルとして扱えるため、特別なコマンドを覚える必要はありません。 サンプルで動作を確認しよう ここからは、具体的な例を使ってビュー
-
MySQLで重複する値を含む複数の最大値を取得する方法
MySQLで最大値が重複している複数行を取得するにはテーブル内の最大値が複数のレコードに重複して存在する場合、単純な MAX() 関数だけでは該当するすべての行を取得できません。このような場合は、JOIN(結合)の概念を使うことで、重複する最大値を持つすべてのレコードを抽出できます。まず、サンプル用のテーブルを作成しましょう。mysql> create table DemoTable1389-> (-> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,-> StudentMarks int-> );Query O
-
MySQLのCOLLATE句を使って大文字小文字を区別した正確な文字列値を検索する方法
MySQLでは、デフォルトの照合順序(utf8_general_ci など)を使用している場合、文字列の検索は大文字と小文字を区別せずに行われます。しかし、「MySQL」と「MYSQL」のように大文字・小文字の違いまで含めて完全に一致するレコードだけを取得したいケースもあります。そんなときに役立つのが COLLATE 句とバイナリ照合順序(utf8_bin)です。サンプルテーブルの作成まず、テーブルを作成しましょう。mysql> create table DemoTable1620 -> ( -> Subject varchar(20) -> )