MySQL

 Computer >> コンピューター >  >> プログラミング >> MySQL
  1. MySQLのDATEDIFF()関数でDateTimeを比較し、異なる列の日付の差を求める方法

    MySQLでDATEDIFF()関数を使ったDateTime比較の基本異なる列に格納された日付(DateTime)同士を比較して差分を求めたい場合は、DATEDIFF()関数を使用します。この関数は、2つの日付の差を「日数」として返します。ここでは、生年月日(DOB)と現在日付(CurrentDate)の2つの列を持つテーブルを例に、23歳以上のレコードを抽出する手順を解説します。ステップ1:テーブルを作成するまず、DateTime型の列を2つ持つテーブルを作成します。mysql> create table DemoTable(DOB datetime,CurrentDate datet

  2. MySQLのFLOAT型フィールドがすべての小数値を受け付けない理由とDECIMAL型による解決方法

    MySQLでFLOAT型に値が正しく保存されない問題とは? MySQLでFLOAT型を使用すると、浮動小数点数の仕様上、一部の数値が正確に格納されず、丸め誤差や値の受け入れ不良が発生することがあります。金額などの正確な小数値を扱いたい場合は、固定小数点型である DECIMAL() を使用するのが解決策です。 DECIMAL(10,2) のように指定すると、整数部分8桁・小数部分2桁の合計10桁の数値を誤差なく正確に保存できます。以下に具体的な手順を紹介します。 1. DECIMAL型のテーブルを作成する まず、Amount カラムを DECIMAL(10,2) として定義したテーブルを作成し

  3. MySQLのINSERT ... ON DUPLICATE KEY UPDATEの使い方を実例付きで解説

    INSERT ... ON DUPLICATE KEY UPDATEとはINSERT ... ON DUPLICATE KEY UPDATEは、MySQLでよく使われる構文の一つです。この構文を使うと、INSERT実行時に一意キー(UNIQUE KEY)や主キー(PRIMARY KEY)の重複が検出された場合、エラーを返す代わりにUPDATE処理へ自動的に切り替えてくれます。つまり、更新が実行されるのは重複した値が発生した場合のみです。この仕組みにより、「レコードが存在しなければ追加、すでに存在すれば更新」といういわゆるアップサート(UPSERT)処理を1つのSQL文で簡潔に実装できます。検証

  4. MySQLで行をマージする方法!GROUP_CONCAT関数を使った行結合の実践テクニック

    MySQLで行をマージするには?MySQLで複数の行を1つにマージ(結合)したい場合は、GROUP_CONCAT() 関数を使用します。この関数を使うと、GROUP BYでグループ化した各行の値を、カンマなどの区切り文字で連結した1つの文字列として取得できます。ここでは、実際にサンプルテーブルを作成しながら、行をマージする手順をわかりやすく解説します。1. サンプルテーブルを作成するまず、CREATE TABLE文でテーブルを作成しましょう。mysql> create table DemoTable734 ( Id int, Name varchar(100));Query

  5. MySQLテーブルからランダムな行を選択する方法

    MySQLのテーブルからランダムな行を取得したい場合は、rand()関数を使用します。ランダムな値を1件だけ選択する場合には、LIMIT 1を組み合わせることで簡単に実現できます。基本構文select *from yourTableName order by rand() limit 1;このクエリでは、テーブル内のすべての行に対してrand()関数がランダムな値を生成し、その値に基づいて行を並べ替えた後、先頭の1行を返します。実際に試してみよう1. テーブルを作成するまず、サンプル用のテーブルを作成します。mysql> create table DemoTable735 (Amount

  6. MySQLのREGEXPで行末をオプションとして一致させる方法

    MySQLのREGEXP演算子を使うと、正規表現によるパターンマッチングが可能です。本記事では、特定の文字列の後に続く「数字」または「行末」を柔軟に一致させる方法を解説します。例えば、「EMPLOYEE:100」の直後に別の数字が続くレコードは除外し、スペースや行末が続くレコードだけを抽出するケースを想定します。サンプルテーブルの作成まず、テーブルを作成します。mysql> create table DemoTable(EmployeeCode varchar(100)); Query OK, 0 rows affected (0.56 sec)レコードの挿入INSERTコマンドを使って

  7. MySQLで特定の1行だけ除外して全レコードを更新する方法|IF()関数とWHERE句の使い分け

    はじめに MySQLでテーブル内のほぼすべてのレコードを更新したいけれど、特定の1行(特定の値を持つ行)だけは除外して元の値を維持したい——そんな場面はよくあります。本記事では、IF()関数を使う方法と、WHERE句を使う方法の2つのアプローチを、実際に動作するサンプルコードと実行結果付きでわかりやすく解説します。 サンプルテーブルの作成 まず、顧客情報を管理するテーブルを作成します。「isMarried」カラムは結婚しているかどうかを 0(未婚)/1(既婚)で表すboolean型です。 mysql> create table DemoTable736 ( CustomerId

  8. MySQLでDEFAULT CURRENT_TIMESTAMPとON UPDATE CURRENT_TIMESTAMPを設定する方法

    MySQLのDEFAULT CURRENT_TIMESTAMPとON UPDATE CURRENT_TIMESTAMPとはMySQLでは、カラムにDEFAULT CURRENT_TIMESTAMPとON UPDATE CURRENT_TIMESTAMPを指定することで、以下のような動作を実現できます。DEFAULT CURRENT_TIMESTAMP: レコード挿入時に値が指定されなかった場合、自動的に現在の日時(タイムスタンプ)がデフォルト値として設定されます。ON UPDATE CURRENT_TIMESTAMP: レコードが更新されるたびに、そのカラムの値が自動的に現在の日時に更新されま

  9. MySQLで空のビュー(VIEW)を作成する方法

    MySQLで空のビュー(VIEW)を作成したい場合は、WHERE FALSEを使うのがポイントです。SELECT文の結果が常に0行になるように条件を指定することで、列の構造だけを持ち、データが1件も含まれないビューを定義できます。 空のビューを作成する基本構文 create or replace view yourViewName as select yourValue AS yourColumnName, yourValue AS yourColumnName2, . . N from dual where false; この構文では、SELECT句で各列名(AS以降)とその型のもととなる値

  10. MySQLで正規表現(REGEXP)を使って英大小文字と数字を含む文字列を検索する方法

    はじめにMySQLで「a〜z」「A〜Z」「0〜9」のすべてを含む文字列を検索したい場合は、BINARY REGEXPとAND演算子を組み合わせることで実現できます。本記事では、実際のSQL実行例とともにその手順をわかりやすく解説します。サンプルテーブルの作成まず、検索対象となるテーブルを作成しましょう。mysql> create table DemoTable738 (UserId varchar(100)); Query OK, 0 rows affected (0.81 sec)レコードの挿入続いて、INSERTコマンドを使ってテーブルにいくつかのレコードを追加します。mysql&g

  11. MySQLで最大の賛成票(Upvote)値を持つレコードを取得する方法

    ここでは、画像パスを格納するカラムと賛成票(アップヴォート)数を格納するカラムを持つテーブルを例に説明します。最初のカラムは、以下のように自動採番(AUTO_INCREMENT)のIdです。テーブルの作成mysql> create table DemoTable( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, ImagePath varchar(100), UpvoteValue int);Query OK, 0 rows affected (0.72 sec)レコードの挿入insertコマンドを使用して、テーブルに複数のレコー

  12. MySQLで同じ列の複数行から整数値の合計を求める方法

    MySQLでは、同じ列(カラム)に格納された複数行の整数値の合計を求めたい場面がよくあります。そんなときに便利なのがSUM()集計関数です。この記事では、実際にテーブルを作成し、データを挿入して、合計値を取得するまでの一連の手順をわかりやすく解説します。 1. テーブルの作成 まず、CREATE TABLE文でテーブルを作成します。ここではint型のPrice列を持つテーブルを用意しました。 mysql> create table DemoTable739 (Price int); Query OK, 0 rows affected (0.65 sec) 2. レコードの挿入 次に、IN

  13. MySQLで数値の累乗を計算する方法【POWER()関数の使い方】

    MySQLで数値の累乗を計算するには?MySQLで数値の累乗(べき乗)を計算するには、POWER()関数を使用します。POWER()関数は、第1引数に基数となる数値、第2引数に指数を指定することで、その計算結果を返します。なお、POWER()関数は別名としてPOW()関数でも呼び出すことができ、どちらも同じ動作をします。ここでは、実際にテーブルを作成し、POWER()関数を使って累乗を計算する手順を具体的な例とともに解説します。1. テーブルを作成するまず、数値を格納するためのテーブルを作成しましょう。mysql> create table DemoTable(  &

  14. MySQLでVARCHAR型の数値列をASC・DESC順に正しく並べ替える方法

    はじめにMySQLでは、VARCHAR型の列に数値が文字列として格納されている場合、そのままORDER BYで並べ替えると辞書順(文字列順)でソートされてしまい、意図した数値順にならないことがあります。例えば「10」が「1000」よりも後ろに配置されるといった問題が発生します。この問題を解決するには、CAST関数を使って文字列を数値型に変換してから並べ替えます。本記事では、昇順(ASC)・降順(DESC)それぞれの方法を実例とともに解説します。サンプルテーブルの作成まず、VARCHAR型の列を持つテーブルを作成します。mysql> create table DemoTable726 (V

  15. MySQLで単一クエリを使い、別の列の値をカスタム順序で選択する方法

    はじめにMySQLでは、IN()句を使用することで、単一のクエリだけで特定の列の値を任意の順序(カスタムオーダー)で抽出できます。本記事では、実際にサンプルテーブルを作成し、具体的な手順を解説します。サンプルテーブルの作成まず、以下のコマンドでテーブルを作成します。mysql> create table DemoTable727 ( Name varchar(100), Score int ); Query OK, 0 rows affected (0.88 sec)レコードの挿入次に、INSERTコマンドを使ってテーブルにデータを挿入します。mysql> inse

  16. UK形式(イギリス式)の日付をMySQLの日付型に変換する方法

    UK形式の日付をMySQLに変換するには?イギリスで一般的に使われている日付形式は「日-月-年」の順序です。例えば「10/11/2019」は2019年11月10日を意味します。この形式の文字列をMySQLの日付型に変換したい場合は、STR_TO_DATE() 関数を使用します。基本構文変換の構文は以下のとおりです。SELECT STR_TO_DATE(対象カラム名, %d/%m/%Y) FROM テーブル名;フォーマット指定子の意味は次の通りです。%d … 日(2桁)%m … 月(2桁)%Y … 年(4桁)サンプルテーブルの作成まず、UK形式の日付をVARCHAR型で格納するテーブルを作成しま

  17. MySQLでUNION ALLを使って学生の各科目の点数を1つの列に表示する方法

    MySQLでは、科目ごとに分かれた列(MySQL、C、Javaなど)に格納された学生の点数を、縦持ち形式(1つの列)に変換して表示したいケースがよくあります。このような場合にはUNION ALLを利用するのが効果的です。本記事では、実際のテーブル作成からクエリ実行までの手順をわかりやすく解説します。 1. サンプルテーブルを作成する まずは、学生ID・氏名・各科目の点数を持つテーブルを作成します。 mysql> create table DemoTable729 ( StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, S

  18. MySQLのプリペアドステートメントでSQLの実行結果を変数に代入する方法

    MySQLでは、プリペアドステートメントの実行結果を直接変数に代入することはできません。しかし、ストアドプロシージャを利用することで、この課題を解決できます。本記事では、その具体的な手順をサンプルコードとともに解説します。前提:テーブルの作成とデータの準備まず、動作確認用のテーブルを作成します。 create table DemoTable(Id int, Name varchar(100));Query OK, 0 rows affected (1.51 sec)続いて、insertコマンドでサンプルデータを挿入します。 insert into DemoTable values(10,Joh

  19. MySQLで開始日と終了日の間の日数をカウントする方法|DATEDIFF関数の使い方

    MySQLで開始日から終了日までの日数をカウントしたい場合、DATEDIFF() 関数を使って2つの日付の差分を求めるのが基本的な方法です。この記事では、サンプルテーブルの作成から実際に日数を計算するクエリの実行まで、手順を追って詳しく解説します。1. テーブルの作成まず、開始日(StartDate)と終了日(EndDate)を格納するためのテーブルを作成します。mysql> create table DemoTable730 ( StartDate date, EndDate date ); Query OK, 0 rows affected (0.45 sec)2.

  20. MySQLで文字列(varchar)をdouble型に変換する方法

    MySQLでは、varchar型のカラムに保存された数値形式の文字列を、簡単な演算によってdouble(浮動小数点数)として扱うことができます。この記事では、テーブルの作成から変換クエリの実行まで、手順を追って解説します。 1. サンプルテーブルの作成 まず、変換元となるテーブルを作成します。 mysql> create table DemoTable731 (Value varchar(100)); Query OK, 0 rows affected (0.50 sec) 2. レコードの挿入 insertコマンドを使って、数値形式の文字列をいくつか登録します。 mysql>

Total 4564 -コンピューター  FirstPage PreviousPage NextPage LastPage CurrentPage:84/229  20-コンピューター/Page Goto:1 78 79 80 81 82 83 84 85 86 87 88 89 90