-
異なる列にある2つの日付間の日数を計算するMySQLクエリ
MySQLでは、DATEDIFF()関数を使うことで、同じテーブル内の異なる列に格納された2つの日付の差(日数)を簡単に計算できます。ここでは、社員の入社日と退職日から勤務日数を求める例を紹介します。1. テーブルを作成するまず、2つの日付型の列を持つテーブルを作成します。mysql> create table DemoTable1471-> (-> EmployeeJoiningDate date,-> EmployeeRelievingDate date-> );Query OK, 0 rows affected (0.57 sec)2. レコードを挿入するI
-
MySQLでchar型カラムをdatetime型に変換する方法をわかりやすく解説
MySQLでは、char型として保存された日付文字列をdatetime形式に変換したいケースがあります。本記事では、REPLACE関数とSTR_TO_DATE関数を組み合わせて、「12/31/2017 10:50」のような米国式の日付文字列を「2017-12-31 10:50:00」というdatetime形式へ変換する手順を、実際のSQLと実行結果付きで解説します。サンプルテーブルの作成まず、テーブルを作成します。ここでは配送日(ShippingDate)をあえてchar型として宣言しています。mysql> create table DemoTable1472 &n
-
MySQLのBETWEEN演算子で異なる値の間にあるレコードを取得する方法
MySQLのBETWEENで異なる値の間にある値を取得する MySQLではBETWEEN演算子を使用することで、特定の2つの値の間に存在するレコードを簡単に取得できます。ここでは、従業員コード(文字列型)を格納したテーブルを例に、具体的な手順を解説します。 1. サンプルテーブルの作成 まず、以下のCREATE TABLE文でテーブルを作成しましょう。 mysql> create table DemoTable1473 -> ( -> EmployeeCode varchar(20) -> ); Query OK, 0 rows affecte
-
2つのテーブルに対する単一のMySQL SELECTクエリは可能ですか?
はい、可能です。FROM句にカンマ区切りで複数のテーブル名を指定することで、単一のSELECTクエリで2つのテーブルからデータを取得できます。基本的な構文は以下の通りです。select * from yourTableName1,yourTableName2;なお、この書き方では両テーブルの全行が組み合わされた「クロス結合(直積)」の結果が返される点に注意してください。サンプルテーブルの作成まず、1つ目のテーブルを作成します。mysql> create table DemoTable1 -> ( &nb
-
MySQLでタイムスタンプを月に変換するクエリの書き方
タイムスタンプを月に変換する基本構文MySQLでタイムスタンプ(UNIXタイムスタンプ)を月に変換するには、FROM_UNIXTIME()関数とMONTH()関数を組み合わせて使用します。基本的な構文は以下の通りです。select month(from_unixtime(yourColumnName)) from yourTableName;FROM_UNIXTIME()関数がUNIXタイムスタンプを日時形式に変換し、その結果に対してMONTH()関数を適用することで、月の数値(1〜12)を取得できます。サンプルテーブルの作成まず、動作確認用のテーブルを作成しましょう。mysql> cr
-
MySQLでNULL値を除外して残りの値だけを表示する方法
MySQLでは、IS NOT NULL演算子を使うことで、NULL値を除外し、実際に値が存在するレコードだけを取得・表示できます。本記事では、サンプルテーブルを作成しながら、具体的な手順をわかりやすく解説します。 1. テーブルを作成する まず、学生名とスコアを格納するテーブルを作成します。 mysql> create table DemoTable1458 -> ( -> StudentName varchar(20), ->
-
MySQLでUNION ALLを使って1つのクエリで複数のレコードをテーブルに挿入する方法
MySQLでは、INSERT文とSELECT文、そしてUNION ALL演算子を組み合わせることで、1つのクエリだけで複数のレコードをテーブルに挿入できます。UNION ALLは、複数のSELECT文の結果セットを重複行を排除せずにそのまま連結する演算子です。本記事では、実際のサンプルコードを交えながら手順を詳しく解説します。 ステップ1:最初のテーブルを作成する まず、挿入先となる1つ目のテーブル「DemoTable1」を作成します。 mysql> create table DemoTable1 -> ( -> StudentName varchar(20
-
MySQLでON DUPLICATE KEY UPDATE用の一意制約(UNIQUE)を追加する方法
MySQLで特定のカラムに重複データが挿入されようとした際に「ON DUPLICATE KEY UPDATE」を正しく機能させるには、あらかじめそのカラムに一意制約(UNIQUE制約)を追加しておく必要があります。本記事では、制約の追加方法から実際の動作確認までを、サンプルコードとともにわかりやすく解説します。 制約を追加する基本構文 テーブルに一意制約を追加するには、以下の構文を使用します。 ALTER TABLE テーブル名 ADD CONSTRAINT 制約名 UNIQUE(カラム名); サンプルテーブルの作成 まず、動作確認用のテーブルを作成しましょう。ここでは「Name(名前)」と「
-
MySQLのIN()を使った大文字・小文字を区別しないSELECTの実行方法
MySQLでIN()句を使用しながら、大文字と小文字を区別しないSELECTクエリを実行したい場面はよくあります。本記事では、UPPER()関数を組み合わせることで、大文字・小文字の違いを無視してデータを検索する方法を、実際のSQL例とともにわかりやすく解説します。サンプルテーブルの作成まず、検索対象となるテーブルを作成しましょう。mysql> create table DemoTable1460 -> ( -> Name varchar(20) -> );Query OK, 0 rows affected (0.91 sec)テーブルへのデータ挿入次
-
MySQLで特定の列の値の文字数を取得し、合計を表示する方法
MySQLでは、CHAR_LENGTH()関数とSUM()関数を組み合わせることで、特定の列に格納された値の文字数を取得し、その合計を簡単に求めることができます。この記事では、実際のサンプルを使いながら、テーブルの作成から集計クエリの実行までの手順をわかりやすく解説します。テーブルを作成するまず、サンプル用のテーブルを作成しましょう。mysql> create table DemoTable1612 -> ( -> FirstName varchar(20), &
-
MySQLでENUM型の値をCASE文を使って任意の順序で並べ替える方法
MySQLでENUM型のカラムを、定義された順序ではなく独自の条件に基づいて並べ替えたい場合があります。そんなときはORDER BYとCASEステートメントを組み合わせることで、自由にソート順を制御できます。この記事では、トランプのカード(K・J・A・Q)を例に、ENUM型の値を希望する順序で並べ替える具体的な手順を解説します。 1. ENUM型カラムを持つテーブルを作成する まず、ENUM型のカラムを持つテーブルを作成します。 mysql> create table DemoTable1461 -> ( -> DeckOfCards ENUM(K,J,A,Q
-
MySQLでNULLを含む列の数値計算を行う方法|IFNULL()関数の使い方
IFNULL()を使えばNULL値を含む計算も安全に実行できるMySQLでは、NULLが含まれる列同士で足し算などの数値計算を行うと、結果もNULLになってしまいます。これを防ぐには、IFNULL()関数を使用するのが効果的です。IFNULL()は、対象の値がNULLの場合に代わりの値(通常は0)を返してくれるため、NULLと非NULL値が混在するテーブルでも正しく計算できます。ここからは、実際にサンプルテーブルを作成しながら手順を確認していきましょう。1. サンプルテーブルを作成するまず、2つのint型カラムを持つテーブルを作成します。mysql> create table DemoT
-
MySQLで複数の行・列を1行に連結する方法:GROUP_CONCATとCONCATの使い方
MySQLでは、GROUP_CONCAT()関数とCONCAT()関数を組み合わせることで、複数の行や列のデータを1つの行に連結できます。この記事では、実際のテーブル作成から連結クエリの実行まで、手順を追って解説します。サンプルテーブルの作成まず、デモ用のテーブルを作成します。顧客ID、氏名、年齢を持つシンプルなテーブルです。mysql> create table DemoTable1463 -> ( -> ClientId int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> ClientName varcha
-
MySQLストアドプロシージャでDELETEクエリを実装する方法
MySQLストアドプロシージャでDELETEクエリを実装する方法MySQLのストアドプロシージャを利用すれば、削除処理をひとつにまとめて再利用しやすくなり、パラメータを通じて動的に値を渡すことも可能です。ここでは、実際にサンプルテーブルを作成し、ストアドプロシージャ内でDELETEクエリを実行するまでの手順を解説します。1. サンプルテーブルの作成まず、動作確認用のテーブルを作成しましょう。mysql> create table DemoTable1464 -> ( -> Id int, -> Fi
-
MySQLクエリで現在の日付が特定の日付範囲内に含まれるかどうかを確認する方法
MySQLでは、CURDATE()関数と比較演算子を組み合わせることで、現在の日付が特定の日付範囲(開始日〜終了日)に含まれているかどうかを簡単に判定できます。この記事では、実際のサンプルコードを使いながら手順を解説します。 サンプルテーブルの作成 まず、開始日(StartDate)と終了日(EndDate)という2つのDATE型カラムを持つテーブルを作成しましょう。 mysql> create table DemoTable1448 -> ( -> StartDate date,
-
MySQLでテーブル内の最大値を持つレコードを取得する方法
MySQLでは、MAX()関数とサブクエリを組み合わせることで、特定のカラムにおける最大値と、その値を持つレコード全体を簡単に取得できます。この記事では、実際にテーブルを作成し、データを挿入して、最大値のレコードを抽出する手順を解説します。1. テーブルを作成するまず、プレイヤーのスコアを管理するためのサンプルテーブルを作成します。mysql> create table DemoTable1449 -> ( -> PlayerId int NOT NULL AUTO_INCREME
-
【MySQL】現在の日付に一致する重複レコードを1件だけ表示する方法
はじめにMySQLで「現在の日付に一致するレコードを検索したい。ただし、同じ日付のレコードが複数存在しても、結果は1件だけ表示したい」というケースがあります。このような場合は、LIMIT句を使うことで簡単に実現できます。本記事では、具体例を交えながら手順を解説します。なお、例として現在の日付が以下であると仮定します。2019-10-021. テーブルを作成するまず、日付を格納するカラムを持つテーブルを作成します。mysql> create table DemoTable1450 -> ( -> DueDate date -> ); Query O
-
MySQLで日付型(DATE)カラムを更新する方法をわかりやすく解説
MySQLでは、DATE_ADD()関数とUPDATE文を組み合わせることで、日付型(DATE)カラムの値を簡単に更新できます。この記事では、実際のSQL実行例を交えながら、日付カラムに1年を加算して更新する手順を解説します。 1. テーブルを作成する まず、日付型カラムを持つテーブルを作成します。 mysql> create table DemoTable1451 -> ( -> JoiningDate date -> ); Query OK, 0 rows affected (0.52 sec) ここでは「JoiningDate(入社日)」と
-
MySQLで複数の行をカウントし、結果を異なる列(1行)に表示する方法
はじめにMySQLでは、条件付きのSUM関数を活用することで、複数の行をそれぞれカウントし、その結果を異なる列に横並び(1行)で表示できます。この記事では、色ごとのデータ件数を集計する例をもとに、具体的な手順をわかりやすく解説します。サンプルテーブルを作成するまず、以下のコマンドでテーブルを作成します。ここでは、お気に入りの色を格納する「FavouriteColor」列を持つテーブルを用意しました。mysql> create table DemoTable1452-> (-> FavouriteColor varchar(50)-> );Query OK, 0 rows
-
MySQLで重複するIDをカウントし、結果を別の列に表示する方法
MySQLでは、GROUP BY句とCOUNT(DISTINCT)関数を組み合わせることで、重複するIDごとにデータを集計し、その結果を別の列として表示できます。この記事では、実際のSQL例を使って手順をわかりやすく解説します。 1. サンプルテーブルを作成する まず、テーブルを作成しましょう。 mysql> create table DemoTable1453 -> ( -> CustomerId int, -> Custom