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

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

008:MySQLのカラムデータから文字列を削除してUPDATE

対象言語:PHP / MySQL
キーワード:PHP 5.0 MySQL UPDATE 文字列 削除 CSV アップデート カラム データ REPLACE 抜き取る
002:MySQLのカラムデータに文字列を付け足してUPDATE」の逆パターンです。理総研ではMySQLのカラムの文字列データを他のプログラムに応用しやすいCSV形式(カンマ区切り)で扱うこともあり、002がCSV形式での付け足しだったので、この形式が壊れないように002に合わせて書いていきます。
$sql =<<<EOF

	UPDATE `user`
	SET `mate` = REPLACE(`mate`, '{$delete_id},', '')
	WHERE `mate` LIKE '%{$delete_id}%'

EOF;

$result = mysql_query($sql,$link) or die('更新できねぇ:' . mysql_error());
  • 「mate」カラムの作りが「id01,id02,i03,」といったCSV形式を採っており、 「mate」カラムのデータ(文字列)から指定した文字列($delete_id)を抜き取ります。正確に言えば、REPLACE関数で「''」(空白ですらない何か)に置き換えます。ただし$delete_idだけを抜き取ると「,,」な感じでカンマが残ってしまうので、削除するのはカンマも含めた「'{$delete_id},'」となります。 削除する文字列が「mate」カラム内にあるならば、という指定をWHERE句のLIKEで行っています。
    このCSV形式のカラムデータをどのように利用していくかと言えば、例えばPHP側でexplodeして配列にするとか、MySQL内でIN演算子に渡すために使うとか、いろいろあります。いずれにしてもカラムデータの最後につく「,」は取り除かないといけませんが、それはいざ利用するときに処理します。→「009:文字列の最後の1字を削除
著者 You Mizuguchi
© 2011 System-iDO IT Devisers