-
MySQLでDATETIME型とNULLのレコードが混在するテーブルから日付をフィルタリングする方法
この記事では、MySQLにおいて日付(DATETIME)レコードとNULLレコードが混在するテーブルから、特定の条件で日付をフィルタリングする方法を解説します。NULL値の扱いは初心者がつまずきやすいポイントなので、実際のコード例とともにわかりやすく説明していきます。 サンプルテーブルの作成 まず、2つのdatetime型カラムを持つテーブルを作成します。 mysql> create table DemoTable ( FirstDate datetime, SecondDate datetime ); Query OK, 0 rows affected (0.57 s
-
MySQLの単一クエリでCOUNT()とIF()を組み合わせる方法
はじめにMySQLでは、COUNT()関数とIF()関数を1つのクエリ内で組み合わせることで、特定の条件に一致するレコード数を効率的に集計できます。この記事では、ブール型(boolean)のカラムを持つテーブルを例に、「値が1であるレコードの総数」を取得する方法を段階的に解説します。1. サンプルテーブルの作成まず、boolean型のカラムを持つテーブルを作成します。mysql> create table DemoTable( isValidUser boolean);Query OK, 0 rows affected (0.70 sec)M
-
MySQLデータベースからランダムなレコードを取得する方法
MySQLでランダムなエントリを選択するには? MySQLデータベースからランダムなレコードを1件取得したい場合は、ORDER BY RAND()句とLIMIT句を組み合わせるのが最もシンプルな方法です。この記事では、実際にテーブルを作成し、サンプルデータを挿入したうえで、ランダムなレコードを抽出するクエリの手順を解説します。 1. サンプルテーブルの作成 まず、以下のコマンドでテーブルを作成します。 mysql> create table DemoTable ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, ClientNam
-
MySQLでプラス記号(+)をスペースに置き換えるには?REPLACE()関数の使い方
MySQLで文字列の中の特定の文字を別の文字に置き換えたい場合は、REPLACE()関数を使用します。この記事では、カラム内の「+」(プラス記号)をスペースに置き換える具体的な手順を、サンプルコード付きで分かりやすく解説します。 手順1:サンプルテーブルを作成する まず、CREATE TABLE文でテーブルを作成しましょう。 mysql> create table DemoTable ( Number varchar(100) ); Query OK, 0 rows affected (0.86 sec) 手順2:レコードを挿入する I
-
MySQLのワイルドカード(*)を使って2つの列の値を除算し、結果を新しい列に表示する方法
MySQLでは、SELECT文のワイルドカード(*)と組み合わせて算術演算を行うことで、2つの列の値を除算した結果を新しい列として表示できます。ここでは、具体的な手順をサンプルとともに解説します。1. サンプルテーブルの作成まず、テーブルを作成します。mysql> create table DemoTable ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, Value1 int, Value2 int ); Query OK, 0 rows affected (0.55 sec)2. レコードの挿入INSERTコマンドを
-
MySQLでvarchar型の日付リストから最大の日付を取得する方法
MySQLでは、varchar型として保存された日付文字列をそのままMAX()関数で比較すると、正しい結果が得られないことがあります。文字列としての比較は辞書順に行われるためです。このような場合は、STR_TO_DATE()関数を使って文字列を日付型に変換してから最大値を取得します。ここでは、「Sunday, 11 August 2019」のような形式のvarchar型日付データから、最大の日付を取得する手順を解説します。1. テーブルを作成するまず、サンプル用のテーブルを作成します。AdmissionDateカラムはvarchar(100)型として定義します。mysql> create
-
MySQLで日付カラムを持つテーブルから最新の日付を取得するクエリの書き方
MySQLでは、ORDER BY句とLIMIT句を組み合わせることで、日付型カラムを持つテーブルから最新の日付を簡単に取得できます。ここでは、実際にテーブルを作成し、データを挿入してから最新の日付をフェッチするまでの手順を解説します。 1. テーブルの作成 まず、日付型(DATE型)のカラムを持つテーブルを作成しましょう。 mysql> create table DemoTable ( DueDate date ); Query OK, 0 rows affected (0.56 sec) 2. レコードの挿入 次に、INSERTコマン
-
MySQLテーブルの全レコードにTRIM関数を適用して余分な空白を一括削除する方法
MySQLでは、TRIM関数を使用することで、文字列の先頭と末尾にある余分な空白(スペース)を簡単に取り除くことができます。本記事では、テーブル内のすべてのレコードに対してTRIMを一度に適用し、データを整形する手順を解説します。1. サンプルテーブルを作成するまず、動作確認用のテーブルを作成しましょう。mysql> create table DemoTable ( StudentName varchar(100) ); Query OK, 0 rows affected (0.64 sec)2. 前後に空白を含むレコードを挿入する次に、INSERT文を使って、先頭や末尾に空白が
-
MySQLで正規表現(REGEXP)を使ってアルファベットA〜Cで始まるレコードを検索する方法
MySQLでアルファベット検索を行うには、REGEXP演算子(正規表現)を使用します。ここでは、名前が「A」「B」「C」のいずれかで始まるレコードを抽出する方法を解説します。REGEXPによるアルファベット検索の基本構文特定の文字で始まるレコードを検索するには、以下のように「^」(キャレット)と文字クラス [ABC] を組み合わせます。select * from テーブル名 where カラム名 REGEXP ^[ABC];「^[ABC]」は「A、B、Cのいずれかの文字で始まる」という意味になります。大文字小文字を区別せずに検索したい場合は、照合順序(collation)によって自動的に両方が
-
【MySQL入門】数値カラムから最大値を取得する2つの方法を実例付きで解説
MySQLのテーブルに保存された数値データの中から最大値を取得したい場面はよくあります。例えば、売上金額の最高額や、テストスコアの最高点を求めるようなケースです。本記事では、数値型カラムから最大値を取得する2つの方法を、実際のSQL文と実行結果付きでわかりやすく解説します。最大値を取得する2つの構文MySQLで最大値を取得するには、以下のいずれかの構文を使用します。-- 方法1:MAX関数を使う select max(yourColumnName) from yourTableName; -- 方法2:ORDER BY句とLIMIT句を組み合わせる select *from yourTabl
-
MySQLで「456 John Smith」のような数字入りの文字列をアルファベット順にORDER BYで並べ替える方法
MySQLで数字入りの文字列を文字(アルファベット)順に並べ替えるには 「456 John Smith」のように、先頭に数字が付いた文字列データが格納されたカラムを、数字ではなく後ろの文字(アルファベット)部分で並べ替えたいケースがあります。このような場合、ORDER BY句とSUBSTRING()関数を組み合わせることで実現できます。 具体的には、LOCATE()関数で最初のスペースの位置を特定し、SUBSTRING()関数でその後ろの文字列を抽出することで、名前部分だけを基準にソートを行います。 サンプルテーブルの作成 まず、以下のクエリでテーブルを作成しましょう。 mysql>
-
MySQLで別のカラムのブール値に基づいて行を連結する方法
MySQLで、別のカラムのブール値(BOOLEAN)に基づいて行を連結するには、GROUP_CONCAT() 関数を使用します。GROUP_CONCAT() は、GROUP BY 句でグループ化された各グループ内の文字列を連結し、1つの文字列として返す集約関数です。本記事では、実際にテーブルを作成し、ブール値ごとに行を連結する手順を実例とともに解説します。 サンプルテーブルの作成 まず、以下のようにテーブルを作成します。ここでは、「isValidUser」カラムを BOOLEAN 型として定義しています。 mysql> create table DemoTable ( Id in
-
MySQLでテーブル作成時にSET型のオプションを設定し、設定済みのオプションを確認する方法
MySQLでは、テーブル作成時にSET型のカラムへ選択可能なオプション(許可される値)を設定できます。この記事では、実際にテーブルを作成してオプションを設定した上で、後からそのオプション一覧を確認する方法を2通り紹介します。SET型カラムを持つテーブルの作成まず、SET型を使って色のオプションを設定したテーブルを作成します。mysql> create table DemoTable ( Color SET(RED,GREEN,BLUE,YELLOW) ); Query OK, 0 rows affected (0.47 sec)これで、RED、GREEN、BLUE、YELLOWの
-
MySQLでHAVING LENGTH(field)を実装する方法をわかりやすく解説
MySQLでは、GROUP BY句とLENGTH()関数、そしてHAVING句を組み合わせることで、フィールドの文字数を条件としてレコードを絞り込むことができます。本記事では、「HAVING LENGTH(field)」を実装する具体的な手順を、サンプルテーブルの作成から実行結果まで順番に解説します。 1. サンプルテーブルを作成する まず、CREATE TABLE文でテーブルを作成します。 mysql> create table DemoTable ( Title text ); Query OK, 0 rows affected (0.
-
SQLクエリでMySQLフィールドの保存価格から20%(消費税分)を除去する方法
価格データから税抜きの金額を求めたいケースはよくあります。ここでは、保存されている価格に20%の消費税が上乗せされて含まれている場合を想定し、SQLクエリを使ってその税相当分(20%)を取り除く方法を解説します。まずはサンプル用のテーブルを作成しましょう。mysql> create table DemoTable ( Price int ); Query OK, 0 rows affected (1.09 sec)テストデータの挿入INSERTコマンドを使って、いくつかのレコードをテーブルに追加します。mysql> insert into DemoTable values(
-
【MySQL】クエリで列の値から最初の単語だけを削除する方法
MySQLで列の値から最初の単語を削除するにはMySQLで列(カラム)の値から最初の単語だけを削除したい場合は、substring()関数とlocate()関数を組み合わせて使用します。locate()で文字列内の最初のスペースの位置を特定し、その次の文字以降をsubstring()で抽出することで、最初の単語を取り除いた結果を取得できます。基本構文select substring(yourColumnName,locate(' ',yourColumnName)+1) AS anyAliasName from yourTableName;サンプルテーブルの作成まず、動作確認用
-
MySQLでCURRENT_TIMESTAMPをAM/PM形式にフォーマットする方法
MySQLで時刻データをAM/PM形式(12時間制)で表示したい場合は、DATE_FORMAT()関数を使用します。フォーマット指定子として %r を使うことで、「hh:mm:ss AM/PM」という形式で時刻を簡単に取得できます。サンプルテーブルの作成まず、デモ用のテーブルを作成しましょう。mysql> create table DemoTable ( LoginTime time ); Query OK, 0 rows affected (0.48 sec)レコードの挿入insertコマンドを使って、テーブルにいくつかのレコードを挿入します。mysql> insert
-
MySQLで特定の値より大きいスコアを持つレコードを削除する方法
MySQLでは、DELETE文とWHERE句を組み合わせることで、特定の値よりも大きい値を持つレコード(行)を簡単に削除できます。本記事では、実際のテーブルを使いながら、その手順を順番に解説します。手順1:テーブルを作成するまず、サンプル用のテーブルを作成します。ここでは、プレイヤー名とスコアを管理するテーブルを例にします。mysql> create table DemoTable ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, PlayerName varchar(100), PlayerScore int ); Qu
-
MySQLデータベースのインデックスを確認・表示する方法
MySQLで作成済みのインデックスを確認したい場合、information_schema データベースの statistics テーブルを参照するのが便利です。このテーブルには、サーバー上のすべてのインデックスに関するメタデータ(テーブル名、カラム名、インデックスの種類など)が格納されています。information_schema.statistics を使ったインデックスの表示方法インデックスを表示するための基本構文は以下の通りです。select * from information_schema.statistics where table_schema = yourDatabaseNam
-
MySQLでAUTO_INCREMENTの開始値を設定しZEROFILLを使う方法:INSERT時に値を指定しないとどうなる?
AUTO_INCREMENTのカスタム値とZEROFILLを組み合わせたテーブル作成ここでは、StudentId列に対してAUTO_INCREMENT = 100というカスタム開始値を設定し、さらにZEROFILLを指定したテーブルを作成する例を見ていきましょう。mysql> create table DemoTable ( StudentId int(7) ZEROFILL NOT NULL AUTO_INCREMENT, PRIMARY KEY(StudentId) )AUTO_INCREMENT=100; Query OK, 0