-
MySQLのSELECT文でASCIIに変換できない文字を削除する方法
MySQLでは、CONVERT関数とREPLACE関数を組み合わせることで、SELECT文だけでASCIIに変換できない特殊文字(€や§など)を文字列から簡単に取り除くことができます。本記事では、実際にテーブルを作成し、サンプルデータを使いながら手順をわかりやすく解説します。ステップ1:テーブルを作成するまず、以下のCREATE TABLE文でサンプル用のテーブルを作成します。mysql> create table DemoTable ( Value varchar(100) ); Query OK, 0 rows affected (0.57 sec)ステップ2:特殊文字を含む
-
MySQLで特定の行を先頭に固定し、残りの行を昇順に並べ替える方法
MySQLでは、「特定の行だけを常に先頭に表示し、それ以外の行は通常どおり並べ替えたい」というケースがあります。例えば、id=10の行を一番上に固定し、残りの行を昇順で表示したい場合などです。本記事では、ORDER BY句とブール式を組み合わせてこの要件を実現する方法を、実際のSQL例とともにわかりやすく解説します。 サンプルテーブルの作成 まず、テーブルを作成します。 mysql> create table DemoTable ( id int ); Query OK, 0 rows affected (0.52 sec) レコードの挿入 次に、INSERTコマンドを使って
-
MySQLのNOT IN句で特定条件のレコードを除外し、重複から一意の値を抽出する方法
MySQLでは、NOT IN句を活用することで、特定の条件に該当するレコードを除外した上で、残りのデータから重複を排除した一意の値を簡単に抽出できます。本記事では、サンプルテーブルを作成し、実際にクエリを実行しながらその手順をわかりやすく解説します。 1. サンプルテーブルの作成 まず、テーブルを作成しましょう。 mysql> create table DemoTable ( Id int, FirstName varchar(100) ); Query OK, 0 rows affected (0.69 sec) 2. レコードの挿入 続いて、INSERTコマンドを
-
MySQLで列の先頭20文字以降の文字列を抽出する方法
MySQLでは、SUBSTRING関数を使うことで、列の値から指定した位置以降の文字列を簡単に取り出せます。本記事では、列の先頭20文字を除いた残りの文字列を取得する方法を、実際のコード例とともにわかりやすく解説します。 1. テーブルを作成する まず、サンプル用のテーブルを作成しましょう。 mysql> create table DemoTable ( Title text ); Query OK, 0 rows affected (0.86 sec) 2. レコードを挿入する 続いて、INSERTコマンドを使ってテーブルにデータを登録し
-
MySQLのすべてのテーブルを1行で一覧表示する方法
MySQLの全テーブルを1行で表示するには? MySQLですべてのテーブルを一覧表示したい場合は、information_schema.tablesを利用します。このシステムビューに対してデータベース名(スキーマ名)をWHERE句で指定することで、特定のデータベースに属するテーブルだけを抽出できます。 さらにGROUP_CONCAT()関数を組み合わせると、複数のテーブル名をカンマ区切りで1行にまとめて取得することも可能です。 実行例:データベース「web」の全テーブルを表示する 次のクエリでは、データベース「web」内のすべてのテーブル名を1行で取得します。 mysql> SELECT
-
MySQLでIN句に指定した順序どおりにクエリ結果を取得する方法(ORDER BY FIELDの使い方)
MySQLでは、IN句で指定した値と同じ順序でクエリ結果を取得したい場面がよくあります。しかし、通常のSELECT文では条件に一致したレコードが自動的に並び替えられるため、IN句の記述順どおりには表示されません。この問題を解決するには、IN()とORDER BY FIELD()を組み合わせて使用します。FIELD()関数は、第1引数の値がリスト内のどの位置にあるかを返すため、これをORDER BY句で使うことで任意の順序での並べ替えが可能になります。サンプルテーブルの作成まず、テーブルを作成します。mysql> create table DemoTable ( Id int NO
-
MySQLのGROUP BY句でカウント結果を制限して表示する方法
MySQLでは、GROUP BY句とCASE式を組み合わせることで、グループごとのレコード数(カウント)を集計しつつ、一定の件数を超えた場合に任意の文字列を表示するといった柔軟な制御が可能です。本記事では、実際にテーブルを作成し、ユーザーごとのメッセージ数をカウントして、4件を超える場合は「4より大きい」と表示する方法を解説します。 1. サンプルテーブルの作成 まず、以下のコマンドでテーブルを作成します。 mysql> create table DemoTable ( UserId int, UserMessage varchar(100) ); Query OK,
-
【MySQL】INSERT INTO SELECT DISTINCTで別テーブルから重複のないレコードを挿入する方法
MySQLで別テーブルから重複のないレコードを挿入する方法 別のテーブルから複数の行を新しいテーブルへ挿入する際、重複するレコードを除外したいケースはよくあります。このような場合、INSERT INTO SELECT文にDISTINCTを組み合わせて使用することで、重複のない(一意の)レコードだけを挿入できます。 ここからは、実際のサンプルコードを使って手順を詳しく解説します。 手順1:元となるテーブルを作成する まず、データのコピー元となるテーブルを作成しましょう。 mysql> create table DemoTable1 ( Value int ); Query OK,
-
MySQLでアンダースコアを含む文字列をORDER BYして並べ替える方法
はじめにMySQLでは、ORDER BY句とLIKE演算子を組み合わせることで、「アンダースコア(_)を含む特定のパターンに一致する文字列」を優先的に表示できます。この記事では、実際にテーブルを作成し、データを挿入したうえで、目的の文字列を先頭に並べ替えるクエリの書き方を解説します。1. サンプルテーブルを作成するまず、以下のコマンドでテーブルを作成します。mysql> create table DemoTable ( Name varchar(100) ); Query OK, 0 rows affected (0.60 sec)2. レコードを挿入するINSERTコマンドを使
-
MySQLでORDER BY DESCを使って降順ソートし、先頭の3件のレコードを表示する方法
データを降順(DESC)で並べ替えたうえで、先頭の数件だけを取得したいケースはよくあります。その場合は、ORDER BY ... DESCとLIMITを組み合わせることで簡単に実現できます。ここでは、具体的なサンプルを使って手順を解説します。サンプルテーブルの作成まず、動作確認用のテーブルを作成しましょう。mysql> create table DemoTable ( UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY, UserName varchar(100) ); Query OK, 0 rows affected (0.5
-
MySQLのGROUP_CONCATで空フィールドにも区切り文字(カンマ)を追加する方法
MySQLでは、replace()関数とgroup_concat()関数を組み合わせることで、空のフィールドが含まれるデータに対しても正しくカンマ区切りを表示できます。この記事では、空のフィールドがある場合でも、区切り文字としてカンマを適切に挿入する方法を、実際のSQL例とともに解説します。 サンプルテーブルの作成 まず、動作確認用のテーブルを作成します。 mysql> create table DemoTable ( Id int, Number varchar(100) ); Query OK, 0 rows affected (2.03 sec) テストデータの挿入
-
MySQLでタイムスタンプを降順に並べ替え、「0000-00-00 00:00:00」だけを先頭に表示する方法
MySQLでORDER BY句を使いタイムスタンプを降順ソートすると、通常は無効な日付である「0000-00-00 00:00:00」は最後尾に配置されます。しかし、ケースによってはこのゼロのタイムスタンプだけを先頭に表示したいこともあるでしょう。本記事では、そのような並べ替えを1つのクエリで実現する方法を解説します。サンプルテーブルの作成まず、以下のコマンドでテーブルを作成します。mysql> create table DemoTable ( `timestamp` timestamp ); Query OK, 0 rows affected (1.12 sec)レコードの挿入
-
MySQLでカンマ区切りの値リストから特定のvarchar型IDを検索する方法
FIND_IN_SET()関数を使ったIDの検索方法 カンマ区切りで保存された値のリストから特定のvarchar型IDを取得したい場合は、MySQLのFIND_IN_SET()関数を使用すると便利です。この関数は、第1引数に検索したい文字列、第2引数にカンマ区切りの文字列リストを指定し、見つかった場合にはその位置(1始まり)を返します。 実際にサンプルテーブルを作成して確認してみましょう。 1. テーブルの作成 mysql> create table DemoTable ( Id varchar(255) ); Query OK, 0 rows affected (0.51 se
-
MySQLでvarchar列から文字列部分を削除し数値のみを抽出する方法|UPDATE文とLEFT・INSTR関数の活用
MySQLでは、数値と文字列が混在するvarchar型の列から、文字列部分を取り除いて数値だけを残したいケースがあります。本記事では、UPDATE文とLEFT()関数・INSTR()関数を組み合わせて、既存の列データを一括更新する方法を解説します。 1. テーブルを作成する まず、サンプル用のテーブルを作成します。 mysql> create table DemoTable ( Download varchar(100) ); Query OK, 0 rows affected (0.53 sec) 2. レコードを挿入する INSERTコ
-
【MySQL】セル内の文字列が一致した場合にテーブル行を削除するクエリの書き方
はじめにMySQLでは、DELETE文とLIKE句を組み合わせることで、特定の文字列が含まれるセル(カラム)を持つ行を効率的に削除できます。この記事では、実際のサンプルを通じて、セル内の文字列が一致した場合にテーブルの行を削除する方法を解説します。テーブルの作成まず、サンプル用のテーブルを作成しましょう。mysql> create table DemoTable ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, Name varchar(100) ); Query OK, 0 rows affected (0.55 sec)レコー
-
MySQLで集計関数を使って列の値の平均を求める方法
MySQLで集計関数を使って列の値の平均を求める方法MySQLでは、SUM()やAVG()などの集計関数を利用することで、テーブル内の列の値から平均値を簡単に算出できます。この記事では、サンプルテーブルを作成し、実際に平均値を求めるまでの手順をわかりやすく解説します。1. テーブルを作成するまず、CREATE TABLE文でテーブルを作成しましょう。mysql> create table DemoTable ( Number int ); Query OK, 0 rows affected (0.79 sec)2. レコードを挿入する次に、INSERTコマンドを使ってテーブルにデ
-
【MySQL】INT型のyyyymmdd形式の数値を日付(DATE)に変換する方法
MySQLでは、INT型で保存された「yyyymmdd」形式の数値(例:20190108)を日付型に変換したいケースがよくあります。このような場合、DATE()関数を使うことで簡単に変換できます。本記事では、実際にテーブルを作成し、サンプルデータを用いてDATE()関数による変換手順を解説します。1. サンプルテーブルの作成まず、INT型のカラムを持つテーブルを作成します。mysql> create table DemoTable ( Number int ); Query OK, 0 rows affected (0.48 sec)2. サンプルデータの挿入INSERT文を使っ
-
MySQLの列に先頭ゼロ(0埋め)を追加する方法
MySQLで列の値に先頭ゼロ(0埋め)を追加するには、LPAD()関数を使用します。LPAD()は、文字列の左側に指定した文字を詰め、指定した全長まで引き伸ばすための関数です。 LPAD()関数の基本構文 LPAD(対象文字列, 全体の長さ, 埋め込み文字) 第1引数に対象となる列や文字列、第2引数に揃えたい合計桁数、第3引数に埋め込む文字(今回は「0」)を指定します。 サンプルテーブルの作成 まず、動作確認用のテーブルを作成しましょう。 mysql> create table DemoTable ( Code varchar(100) ); Query OK, 0 rows a
-
MySQLのSELECT文で各値の末尾にパーセント(%)記号を追加する方法
SELECT文で取得した値の末尾にパーセント(%)記号を追加したい場合は、CONCAT()関数を使用します。この記事では、実際にテーブルを作成し、データを挿入して、パーセント記号を付けて表示する手順を順番に解説します。1. サンプルテーブルの作成まず、以下のようにテーブルを作成します。mysql> create table DemoTable ( StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, StudentName varchar(100), StudentScore int ); Query OK, 0 r
-
MySQLで文字列カラムから先頭15文字のみを抽出する方法
文字列の値から先頭15文字だけを取り出したい場合は、MySQLのSUBSTR()関数を使用します。この関数は指定した開始位置から指定した文字数分の部分文字列を返すため、一覧ページなどで長いタイトルの冒頭だけを表示したい場面で非常に便利です。サンプルテーブルを作成するまず、動作確認用のテーブルを作成しましょう。mysql> create table DemoTable ( Title varchar(100) ); Query OK, 0 rows affected (0.69 sec)レコードを挿入する続いて、INSERT文を使ってテーブルにいくつかのレコードを追加します。mys