勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

MySQLで指定カラムの文頭もしくは文末に文字を追記する方法

MySQLで特定カラムの文頭もしくは文末に年月日日時(YmdHis)を追記したいというケースが偶にあるが、今までは一旦当該データを取得しPHP側で追記した後にupdateしていた。ただ、最近見たソースコードでCONCATを用いてスマートに対応している方法があったので忘れないようにメモ。

 

対応方法

ソースコード

/* 文頭に追記 */
UPDATE `test_table` 
SET `mail` = CONCAT(DATE_FORMAT(NOW(), '%Y%m%d%H%i%s'), '_', `mail`)
WHERE id = 1;

/* 文末に追記 */
UPDATE `test_table` 
SET `mail` = CONCAT(`mail`, '_', DATE_FORMAT(NOW(), '%Y%m%d%H%i%s'))
WHERE id = 1;

mailカラムの文頭もしくは文末にYmdHis形式の文字を追記するという内容になる。バッククォートとシングルクォーテーションが混合しているので注意すること。

 

リファレンス

CONCAT

https://dev.mysql.com/doc/refman/8.0/ja/string-functions.html#function_concat

 - MySQL / MariaDB データベース

  関連記事

PHPからMySQLに接続する際「getaddrinfo for xxxxxx failed」エラーの対応方法
PHPからMySQLに接続する際「getaddrinfo for xxxxxx failed」エラーの対応方法

Podmanコンテナ環境で直前まではPHP→MySQL接続できていたのに「pod ...

MySQLでIPアドレスを数値として入れると変な値になる場合の対処方法
MySQLでIPアドレスを数値として入れると変な値になる場合の対処方法

MySQLでIPアドレスをINET_ATON関数を用いてINT型に変換し格納する ...

MySQLでテーブル構造とデータをコピーする方法
MySQLでテーブル構造とデータをコピーする方法

MySQLで既にあるテーブルとデータに対して実験を行う必要があった。本番テーブル ...

MySQLで日時や日付で範囲検索する際に動作速度を向上させる方法
MySQLで日時や日付で範囲検索する際に動作速度を向上させる方法

MySQLでログ系等の大量にデータが格納されているテーブルから日時や日付で範囲検 ...

MySQLでIPを整数値としてカラムに格納する
MySQLでIPを整数値としてカラムに格納する

MySQLでIPを整数値としてカラムに格納しているケースがあった。今までIPが必 ...