-
MySQLでvarchar型の数値文字列から最大値を表示する方法
MySQLでは、数値がvarchar型(文字列型)として保存されている場合、そのまま比較・並べ替えを行うと文字列として扱われてしまい、意図した順序や最大値が得られないことがあります。正しい結果を取得するには、CAST()関数を使ってvarcharの値を数値型(INTEGERなど)にキャストする必要があります。ここでは、実際にテーブルを作成し、varchar型の数値文字列から最大値を表示する手順を解説します。1. テーブルの作成まず、サンプル用のテーブルを作成します。mysql> create table DemoTable765 (ItemPrice varchar(200)); Que
-
MySQLのSELECT文で列の値の末尾に文字を追加する方法
列の値の末尾に文字を追加したい場合は、CONCAT()関数を使って文字列を連結します。この記事では、具体的な手順をサンプルコードとともに解説します。テーブルの作成まず、サンプル用のテーブルを作成しましょう。mysql> create table DemoTable766 (Name varchar(100));Query OK, 0 rows affected (0.65 sec)レコードの挿入insertコマンドを使って、テーブルにいくつかのレコードを挿入します。mysql> insert into DemoTable766 values(John);Query OK, 1 ro
-
MySQLでISNULL()のように使えるIF()関数でゼロ値を任意の値に置き換える方法
MySQLでは、ISNULL()関数がNULL値の判定に使われるように、0(ゼロ)の値を別の値に置き換えたい場合には、IF()関数を活用すると便利です。IF(条件, 真の場合の値, 偽の場合の値)という構文を使えば、値が0のときだけ任意の値を返すように設定できます。ここでは、実際にテーブルを作成し、0を含むデータに対してIF()関数を適用する手順を解説します。 1. テーブルを作成する まず、サンプル用のテーブルを作成しましょう。 mysql> create table DemoTable749 (Value int); Query OK, 0 rows affected (1.02 s
-
MySQLにログイン中のユーザーを一覧表示する2つの方法
MySQLサーバーに現在接続(ログイン)しているユーザーを確認したい場面は、運用やトラブルシューティングの際によくあります。MySQLでは、以下の2つの方法でログイン中のユーザーや実行中のスレッド情報を簡単に一覧表示できます。 方法1:INFORMATION_SCHEMA.PROCESSLIST を使う 標準SQLの形式でプロセス情報を取得したい場合は、INFORMATION_SCHEMA.PROCESSLIST テーブルに対してSELECT文を実行します。この方法のメリットは、通常のSELECT文と同じようにWHERE句やORDER BYを使って絞り込みや並べ替えができる点です。 SELEC
-
MySQLで特定のキーワードを含むレコードをテーブルから抽出する方法(LIKE演算子の使い方)
MySQLでキーワードを含むレコードを抽出するには?テーブル内のカラム値に特定のキーワードが含まれているレコードだけを取得したい場合があります。そのようなときは、LIKE演算子を使用します。LIKE演算子は「%」などのワイルドカードと組み合わせることで、部分一致検索を簡単に行えるのが特徴です。ここでは、実際にテーブルを作成し、キーワード「MySQL」を含むレコードを抽出する手順を見ていきましょう。1. テーブルを作成するまずはサンプル用のテーブルを作成します。mysql> create table DemoTable750 (Title varchar(200));Query OK, 0
-
MySQLでGROUP BYとHAVING句を使って2つの異なる値を持つレコードをすべて取得する方法
MySQLである列(この例では学生名)ごとに、別の列(科目名)に2つ以上の異なる値が登録されているレコードをすべて取得したいケースはよくあります。たとえば、「MySQL」と「MongoDB」の両方を受講している学生だけを抽出したい場合などです。 このような条件でのデータ抽出には、GROUP BY句とHAVING句を組み合わせて使用します。以下、テーブル作成からクエリ実行までの手順をサンプルコードとともに解説します。 1. サンプルテーブルの作成 まず、学生名と科目名を格納するテーブルを作成します。 mysql> create table DemoTable751 ( &n
-
【MySQL】IN(1,2,3)とORDER BYを組み合わせてカスタム順序でソートするクエリの書き方
はじめにMySQLでは、特定のIDだけを優先的に先頭に表示したいなど、独自の順序(カスタムオーダー)でレコードを並べ替えたいケースがあります。そのような場合には、ORDER BY句とCASE式を組み合わせることで、IN()による条件指定を活用した柔軟な並び替えが実現できます。この記事では、実際にテーブルを作成し、Id IN (1,2,3) のレコードを優先的に表示しつつ、Nameカラムで並べ替える方法を具体的なSQL例とともに解説します。テーブルの作成まずはサンプル用のテーブルを作成しましょう。mysql> create table DemoTable752 ( Id int N
-
【MySQL】日付から月の部分だけを取り出す方法|DATE_FORMAT()関数の使い方
MySQLで日付(datetime型)から「月」の部分だけを取得したい場合は、DATE_FORMAT()関数を使用するのが便利です。月名(英語表記)として取得するか、数値として取得するかによって、フォーマット指定子を使い分けます。1. サンプルテーブルを作成するまず、日付を格納するテーブルを作成します。mysql> create table DemoTable753 (DueDate datetime); Query OK, 0 rows affected (0.51 sec)2. テーブルにレコードを挿入するINSERT文を使って、いくつかのサンプルデータを登録します。mysql>
-
MySQLで重複のない値とその件数を取得する方法
MySQLでテーブル内の重複を除いた一意の値と、それぞれの値が出現する件数を一緒に取得したい場合は、GROUP BY句とCOUNT()関数を組み合わせるのが基本です。この記事では、具体的な手順をサンプルコード付きで解説します。1. サンプルテーブルを作成するまず、動作確認用のテーブルを作成します。mysql> create table DemoTable754 (ProductPrice int);Query OK, 0 rows affected (0.48 sec)2. テストデータを挿入するINSERTコマンドを使って、意図的に重複を含むデータを登録します。mysql> in
-
MySQLでエイリアス(別名)を使ってフィルタリングするには?HAVING句の活用方法
MySQLでは、SELECT句で定義したエイリアス(別名)をWHERE句で直接参照することはできませんが、HAVING句を使えばエイリアスに対してフィルタリングを実行できます。本記事では、実際のサンプルコードをもとに、その手順をわかりやすく解説します。 1. テーブルの作成 まず、動作確認用のテーブルを作成しましょう。 mysql> create table DemoTable755 ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, Score1 int, Score2 int ); Query OK, 0 rows a
-
MySQLで複数の列から最小値を取得する方法【LEAST関数の使い方】
MySQLでは、LEAST()関数を使うことで、複数の列(カラム)の値の中から最小値を簡単に取得できます。この記事では、実際にテーブルを作成し、データを挿入したうえで、LEAST関数の具体的な使い方を確認していきます。サンプルテーブルの作成まず、テーブルを作成します。mysql> create table DemoTable756 ( Value1 int, Value2 int, Value3 int ); Query OK, 0 rows affected (0.62 sec)レコードの挿入次に、INSERTコマンドを使ってテーブルにレコードを挿入します。my
-
MySQLで「文字列+数字」形式のデータを右側の数字順に並べ替える方法
英数字が混在するカラムを並べ替えるにはテーブルにVARCHAR型のカラムがあり、値が「名前+数字」のように文字列の右側に数字が付いた形式になっている場合を考えてみましょう。例えば、以下のようなデータです。John1023 Carol9871 David9098このような場合、カラム全体を右側の数字に基づいて並べ替えたいことがあります。そんなときは、ORDER BY句とRIGHT()関数を組み合わせるのが便利です。 テーブルの作成まず、動作確認用のテーブルを作成します。mysql> create table DemoTable757 ( Id int NOT NULL AUTO_IN
-
MySQLのWHERE句で複数のORを使うときの代替手段は?REGEXPでORクエリをスマートに書く方法
MySQLで「WHERE ... OR」のようにOR条件を複数つなげる代わりに、REGEXP(正規表現)を使うという代替手段があります。REGEXPでは「|」(パイプ)がORと同じ働きをするため、複数のキーワードをひとつの条件にまとめて簡潔に記述できるのが特徴です。 サンプルテーブルの作成 まず、動作確認用のテーブルを作成しましょう。 mysql> create table DemoTable684(EmployeeInformation text); Query OK, 0 rows affected (0.68 sec) レコードの挿入 続いて、INSERTコマンドを使ってテーブルに
-
MySQLで定数と組み合わせて別のテーブルからデータを挿入する方法
MySQLでは、INSERT文とSELECT文を組み合わせることで、別のテーブルから取得したデータに固定値(定数)をマージしながら、新しいテーブルへ一括挿入することができます。ここでは、その具体的な手順をサンプルコードとともに解説します。 1. 最初のテーブルを作成する まず、データ元となるテーブルを作成します。 mysql> create table DemoTable1(Name varchar(100)); Query OK, 0 rows affected (0.83 sec) 2. サンプルデータを挿入する INSERTコマンドを使って、テーブルにレコードを追加します。 m
-
2つのMySQLテーブル間で欠落している値を見つける方法【NOT IN句の使い方】
はじめに2つのMySQLテーブルを比較して、片方のテーブルには存在しない値(欠落している値)を抽出したい場面はよくあります。そんなときに便利なのが NOT IN 句です。この記事では、具体的なサンプルコードとともに、2つのテーブル間で欠落している値を見つける方法をわかりやすく解説します。手順1:1つ目のテーブルを作成するまず、比較元となるテーブルを作成しましょう。mysql> create table DemoTable1(Value int);Query OK, 0 rows affected (0.56 sec)次に、INSERT文を使ってレコードを挿入します。mysql> i
-
MySQLエラー1064「SQL構文にエラーがあります。使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください…」の解決方法
この種のエラーは、SQL文に誤った構文を使用した場合に発生します。本記事では、テーブル作成時に実際にエラーが発生する例を通じて、原因と解決方法をわかりやすく解説します。 エラーが発生する例 まず、誤った構文を含むテーブル作成文を見てみましょう。以下の例では、DATE型のカラムに対して不正な引数「(100)」を指定しています。 mysql> create table DemoTable689( UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY, UserName varchar(100), UserLoginDate
-
MySQLで特定の値で始まるレコードを抽出する方法|LIKE演算子の使い方
MySQLで特定の値から始まるレコードを取得するには? MySQLにおいて、特定の値で始まるレコードを選択したい場合は、LIKE演算子を使用します。LIKE演算子にワイルドカード「%」を組み合わせることで、前方一致による柔軟な文字列検索が可能になります。 この記事では、実際にテーブルを作成し、データを挿入して、LIKE演算子で前方一致検索を行うまでの手順をサンプルコード付きで解説します。 1. サンプルテーブルの作成 まず、動作確認用のテーブルを作成しましょう。 mysql> create table DemoTable690( UserId int NOT NULL AUTO_
-
【MySQL】予約語「table」をテーブル名として使える?create table tableがエラーになる原因とバッククォートでの解決法
はじめに:予約語をテーブル名にするとどうなる?MySQLでは、あらかじめシステム側で用途が決められている予約語(リザーブドキーワード)が多数存在します。その代表格が「table」という単語です。ここでは、実際に「create table table」を実行すると何が起こるのか、そしてどのように解決すればよいのかを具体的な例とともに見ていきましょう。エラーになるケース:そのままテーブル名に指定した場合まず、テーブル作成時にテーブル名としてそのまま「table」を指定してみます。mysql> create table table( Id int NOT NULL AUTO_INCRE
-
MySQLで空文字('')とNULLの両方を一緒に取得・表示するクエリの書き方
MySQLで空文字とNULLを同時に検索するにはMySQLにおいて、NULL値をチェックするには IS NULL を使用します。一方、空文字(空の値)は IS NULL では判定できないため、空の文字列 との比較が必要です。ここでは、両方を一度に抽出する方法を例とともに解説します。1. サンプルテーブルの作成まず、テーブルを作成します。mysql> create table DemoTable691( PlayerId int NOT NULL AUTO_INCREMENT PRIMARY KEY, PlayerName varchar(100), PlayerSco
-
MySQLでRAND()関数を使ってカラムのレコードを乱数で更新する方法
MySQLでは、RAND()関数とCAST()を組み合わせることで、カラムのレコードをランダムな数値で一括更新できます。この記事では、実際のSQL例とともにその手順をわかりやすく解説します。ステップ1:テーブルを作成するまず、サンプル用のテーブルを作成します。mysql> create table DemoTable746 ( Number int ); Query OK, 0 rows affected (0.56 sec)ステップ2:レコードを挿入する次に、INSERTコマンドを使ってテーブルにいくつかのレコードを追加します。mysql> insert