中学受験専門 理科総合研究所 −理総研−

フロントページへ
Name:
Pass:
RSS
: ユーザー登録はコチラ :
左 理総研:技術情報と開発メモ 右

002:MySQLのカラムデータに文字列を付け足してUPDATE

対象言語:PHP / MySQL
キーワード:PHP 5.0 MySQL UPDATE 文字列 連結 合体 CSV アップデート カラム データ 付け足す CONCAT
MySQLでカラムの型が数値の場合、加算アップデートはとても楽な作業ですよね。がしかし、文字列を付け足す処理をインターネットで探していたら、多分私の探し方がダメだったのでしょう。見つからなかったので、1回の処理で済むように少し考えました。
なおこの逆パターンは「008:MySQLのカラムデータから文字列を削除してUPDATE」にあります。
$sql =<<<EOF
	
	UPDATE `user`
	SET `mate` = CONCAT(`mate`, '{$plus_id},')
	WHERE `mate` NOT LIKE '%{$plus_id}%'
	
EOF;
	
$result = mysql_query($sql,$link) or die('更新できねぇ:' . mysql_error());
  • 「mate」カラムの作りが「id01,id02,id03,」といったCSV形式(カンマ区切り)を採っているときに、 現在の「mate」カラムのデータ(文字列)の後ろに、新しい文字列($plus_idと「,(カンマ)」)を追加します(4行目)。}のあとの「,」を忘れると、CSV形式が壊れてしまいますので注意。 CONCAT関数は文字列の連結に使用します。
    追加する文字列がすでに「mate」カラム内にある場合は追加しないようにするため、WHERE句のNOT LIKEで調整しています。
    このCSV形式のカラムデータをどのように利用していくかと言えば、例えばPHP側でexplodeして配列にするとか、MySQL内でIN演算子に渡すために使うとか、いろいろあります。いずれにしてもカラムデータの最後につく「,」は取り除かないといけませんが、それはいざ利用するときに処理します。→「009:文字列の最後の1字を削除
著者 You Mizuguchi
© 2011 System-iDO IT Devisers