MySQL

 Computer >> コンピューター >  >> プログラミング >> MySQL
  1. MySQLで重複データをすべて抽出する方法【サブクエリを使った実例付き】

    MySQLのテーブルに同じ値を持つレコード(重複データ)が複数含まれている場合、それらをすべて抽出したい場面はよくあります。そんなときに便利なのがサブクエリと GROUP BY・HAVING 句を組み合わせた方法です。 この記事では、実際にサンプルテーブルを作成し、重複レコードをすべて取得するまでの手順を順番に解説します。 1. サンプルテーブルの作成 まず、以下のSQL文でテーブルを作成します。Id 列は自動採番(AUTO_INCREMENT)の主キー、Name 列には名前を保存します。 mysql> create table DemoTable-> (-> Id int

  2. MySQLで現在の日付のレコードを除外してすべてのレコードを表示する方法

    MySQLでデータを取得する際、今日の日付に該当するレコードを除外し、それ以外のすべてのレコードを表示したいケースがあります。この記事では、CURDATE()関数とDATE()関数を組み合わせることで、現在の日付のレコードを無視してすべてのレコードを取得する方法を解説します。テーブルの作成まず、テーブルを作成しましょう。mysql> create table DemoTable    -> (    -> Name varchar(100),    ->

  3. 単一のMySQLクエリで「LIKE」と「IN」を実装できる?REGEXPを使った代替方法

    単一のMySQLクエリで「LIKE」と「IN」を実装する方法MySQLでは、複数のキーワードのいずれかに一致するレコードを抽出したい場合、「LIKEとINを組み合わせたような条件」を使いたくなることがあります。結論から言うと、REGEXP(正規表現)を使えば、1つのクエリでこの要件を効率的に実現できます。ここでは、実際にテーブルを作成し、REGEXPによる検索方法を具体的に解説します。まずはサンプル用のテーブルを作成しましょう。mysql> create table DemoTable-> (-> Name varchar(30)-> );Query OK, 0 row

  4. MySQLで電話番号から市外局番を抽出する方法【LEFT()関数の使い方】

    MySQLで電話番号から市外局番を抽出する方法電話番号のリストから市外局番(先頭の数桁)だけを抜き出したいケースはよくあります。MySQLではLEFT()関数を使うことで、文字列の先頭から指定した文字数分だけ簡単に取り出すことができます。LEFT()関数は、第1引数に対象のカラム名、第2引数に抽出する文字数を指定します。さらにDISTINCTキーワードを組み合わせれば、重複しない市外局番の一覧を取得することも可能です。実際の手順を順番に見ていきましょう。1. サンプルテーブルを作成するまず、電話番号を格納するためのテーブルを作成します。mysql> create table DemoTa

  5. MySQLで大きな文字列を保存するのに最適なデータ型は?TEXT型の使い方を解説

    MySQLで大きな文字列を扱うならTEXT型が最適MySQLで長い文字列を保存したい場合、TEXT型を使用するのが最適です。TEXT型は最大65,535バイト(約64KB)の文字列を格納でき、VARCHAR型の上限を超えるような長文データの保存に向いています。TEXT型カラムを作成する基本構文テーブル作成時にカラムのデータ型として「text」を指定するだけで、TEXT型のカラムを定義できます。基本構文は以下のとおりです。CREATE TABLE yourTableName ( yourColumnName text, . . N );実際にテーブルを作成してみよ

  6. ASCやDESCを使わずにMySQLのORDER BYを実装する方法

    MySQLでは、FIND_IN_SET() 関数を活用することで、ASC(昇順)やDESC(降順)を指定せずに、独自のカスタム順序でレコードを並べ替えることができます。FIND_IN_SET()は、ある文字列がカンマ区切りのリストの中で何番目に位置しているかを返す関数であり、この戻り値をORDER BYに渡すことで、思い通りの並び順を実現できるのです。サンプルテーブルの作成まず、動作確認用のテーブルを作成しましょう。mysql> create table DemoTable -> ( -> Number int -> );Query OK, 0 rows a

  7. MySQLで4文字未満の文字列を含むすべての行を検索する方法

    はじめにMySQLでは、CHAR_LENGTH()関数を使うことで、文字列の文字数を簡単に取得できます。本記事では、この関数を活用して「文字列が4文字未満」であるすべての行を検索する方法を、具体的な手順とともに解説します。ステップ1: サンプルテーブルの作成まず、CREATE TABLE文でテーブルを作成しましょう。mysql> create table DemoTable-> (-> Name varchar(100)-> );Query OK, 0 rows affected (1.38 sec)ステップ2: データの挿入続いて、INSERT文を使っていくつかのレコ

  8. MySQLで特定のスコアを超える学生のレコードを検索する方法

    MySQLでは、WHERE句と比較演算子を組み合わせることで、特定のスコアを超える学生のレコードを簡単に取得できます。この記事では、テーブルの作成からデータの挿入、条件を指定した検索まで、具体的な手順を解説します。テーブルの作成まず、学生の情報を格納するためのテーブルを作成しましょう。mysql> create table DemoTable -> ( -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> StudentName varchar(100), -> StudentScore int

  9. MySQLで列内の重複しないレコード数を取得する方法

    MySQLで列内の重複しない(ユニークな)レコードの数を取得するには、COUNT()関数とDISTINCTキーワードを組み合わせて使用します。基本構文以下が基本となる構文です。SELECT COUNT(DISTINCT yourColumnName) FROM yourTableName;実際にサンプルテーブルを作成して、動作を確認してみましょう。テーブルの作成まず、テーブルを作成します。mysql> CREATE TABLE DemoTable -> ( -> Name VARCHAR(20), -> Score INT -> ); Query OK, 0 ro

  10. MySQLでJSONデータ型をクエリする方法をわかりやすく解説

    はじめにMySQLにはJSONデータ型が用意されており、カラムにJSON形式のデータをそのまま保存して柔軟に扱うことができます。本記事では、実際にテーブルを作成し、JSONデータの挿入・表示・検索を行う具体的な手順をサンプルコード付きで解説します。1. JSON型カラムを持つテーブルを作成するまず、JSONデータ型のカラムを持つテーブルを作成しましょう。mysql> create table DemoTable-> (-> StudentName json-> );Query OK, 0 rows affected (0.74 sec)2. レコードを挿入する続いて、I

  11. 【MySQL】TIMEDIFF()の結果を秒に変換するクエリの書き方

    MySQLで2つの時刻の差分を求める TIMEDIFF() 関数の結果は「HH:MM:SS」形式で返されますが、計算処理などに使う場合は秒単位に変換したほうが便利なことがあります。そのような場合には、TIME_TO_SEC() 関数を組み合わせることで簡単に実現できます。ここでは、実際にテーブルを作成しながら手順を確認していきましょう。1. サンプルテーブルの作成まず、時刻データを格納するためのテーブルを作成します。mysql> create table DemoTable    -> (    -&g

  12. MySQLでvarchar型の日付から特定の月をフィルタリングする方法

    varchar型として保存された日付データから特定の月を抽出するには、MySQLのSTR_TO_DATE()関数を使用します。この関数で文字列を日付型に変換し、MONTH()関数と組み合わせることで、目的の月のデータを簡単にフィルタリングできます。それでは、まずサンプルとなるテーブルを作成しましょう。mysql> create table DemoTable -> ( -> DueDate varchar(100) -> );Query OK, 0 rows affected (1.18 sec)次に、insertコマンドを使ってテーブルにレコードを挿

  13. MySQLでユーザーに全ストアドプロシージャへのアクセス権限を付与する方法

    MySQLですべてのストアドプロシージャへのアクセス権限をユーザーに許可する手順MySQLでは、GRANT EXECUTE 構文を使用することで、特定のユーザーに対してデータベース内のすべてのストアドプロシージャ(およびストアドファンクション)を実行する権限を簡単に付与できます。ここでは、その具体的な手順を順を追って解説します。ステップ1:現在登録されているユーザーの確認まず、mysql.user テーブルから既存のユーザーとホストの一覧を表示して確認しましょう。mysql> SELECT user, host FROM mysql.user;このクエリを実行すると、次のような出力が得ら

  14. MySQLで「TRUE OR TRUE AND FALSE」がTRUEと評価される理由とは?

    MySQLで「TRUE OR TRUE AND FALSE」がTRUEと評価される理由 MySQLにおいて「TRUE OR TRUE AND FALSE」という条件式がTRUE(1)と評価されるのは、AND演算子がOR演算子よりも高い優先順位を持つためです。つまり、MySQLはORよりも先にANDを評価します。 評価の順序 MySQLはこの式を次のように解釈し、まずAND演算子から処理を行います。 (TRUE OR (TRUE AND FALSE)) 括弧内の (TRUE AND FALSE) はFALSE(0)を返します。すると、式全体は次のように置き換えられます。 (TRUE

  15. MySQLで1つの列から重複する値の出現回数を取得する方法

    MySQLでは、GROUP BY句とCOUNT(*)関数を組み合わせることで、単一の列に含まれる重複した値がそれぞれ何回出現しているかを簡単に集計できます。ここでは、実際の手順をサンプルコード付きで解説します。 1. サンプルテーブルを作成する まず、数値を格納するシンプルなテーブルを作成しましょう。 mysql> create table DemoTable -> ( -> Number int -> ); Query OK, 0 rows affected (0.83 sec) 2. テストデータを挿入する INSERTコマンドを使って、意図的

  16. IN()の代わりにFIND_IN_SETを使ってMySQLの1つのフィールド内にあるカンマ区切り値を検索する方法

    IN()の代わりにFIND_IN_SETを使用するMySQLで1つのフィールドに格納されたカンマ区切りの値を検索したい場合、IN()ではなくFIND_IN_SET関数を使用します。FIND_IN_SETは、カンマ区切りの文字列リストの中から指定した値を検索し、見つかった位置(1始まり)を返す関数です。値が存在しない場合は0を返します。サンプルテーブルの作成まず、以下のコマンドでテーブルを作成しましょう。mysql> create table DemoTable -> ( -> ListOfValues text -> );Query OK, 0 rows a

  17. MySQLのIN(…)句で指定した値と同じ順序でクエリ結果を返す方法

    MySQLのORDER BY FIELD()を使って、指定した値の順序どおりに結果を取得する結論から言うと、可能です。MySQLでは ORDER BY FIELD() を使うことで、IN(…) や FIELD() に渡した値と同じ並び順でクエリ結果を取得できます。ここでは、実際にテーブルを作成して動作を確認していきましょう。1. テーブルを作成するまず、サンプル用のテーブルを作成します。mysql> create table DemoTable-> (-> Number int-> );Query OK, 0 rows affected (0.54 sec)DemoTa

  18. MySQLでユーザーに付与された権限(GRANTS)を確認する方法【SHOW GRANTS活用ガイド】

    MySQLでは、特定のユーザーにどのような権限が付与されているかを確認したい場面がよくあります。そんなときに役立つのが SHOW GRANTS ステートメントです。この記事では、SHOW GRANTSの基本的な使い方から、実際の実行例までわかりやすく解説します。 SHOW GRANTSの基本構文 ユーザーの権限情報を表示するには、以下のように SHOW GRANTS FOR の後にユーザー名とホスト名を指定します。 SHOW GRANTS FOR yourUserName@yourHostName; ユーザー名とホスト名を事前に確認する Syntaxに含まれるユーザー名やホスト名がわからない場

  19. MySQLでハイフン以降の文字列を抽出する方法:SUBSTRING_INDEX()の使い方

    MySQLでハイフン以降の文字列を抽出する方法MySQLでカラム内のハイフン(-)より後ろの値だけを取り出したい場合は、SUBSTRING_INDEX()関数を使用します。この関数は、指定した区切り文字を基準に文字列を分割し、必要な部分を取得できる便利な関数です。基本的な構文は以下のとおりです。SELECT SUBSTRING_INDEX(カラム名, -, -1) AS 別名 FROM テーブル名;第3引数に「-1」を指定すると、最後のハイフンより後ろにある文字列が返されます。サンプルテーブルの作成まず、動作確認用のテーブルを作成しましょう。mysql> CREATE TABLE Dem

  20. MySQLクエリで文字列の一部を切り取る方法【実行例付きで解説】

    MySQLクエリで文字列の一部を切り取る方法 MySQLで「STU-1011」のような文字列から、ハイフン(-)より後ろの数字部分だけを取り出したい場合、SUBSTRING_INDEX()関数とINSTR()・SUBSTRING()関数を組み合わせることで実現できます。ここでは、実際にテーブルを作成し、データを挿入して動作を確認するまでの手順を順番に解説します。 1. サンプルテーブルの作成 まず、create table文でテーブルを作成します。 mysql> create table DemoTable -> ( -> StudentId varchar(10

Total 4564 -コンピューター  FirstPage PreviousPage NextPage LastPage CurrentPage:97/229  20-コンピューター/Page Goto:1 91 92 93 94 95 96 97 98 99 100 101 102 103