1,2,3,4,5というデータがテーブルvarのカラムhogeに入っています。
3だけを取り除いて、1,2,4,5というデータに変えたいのですが、SQL文でできますでしょうか?
http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/sq_k03.htm
SQL 基礎編 (その三) データ操作 insert、update、delete、commit、rollback - SAK Streets
上記URLで基礎的なSQLから、一通り網羅されています。
データに変えたいというのは、レコードの削除という意味なら
→ delete from var where hoge=3;
抽出するときにhoge=3のレコードだけ除外するのであれば、
→ select * from var where hoge!=3;
となります。
悪い質問のしかたで、失礼いたしました。
1の方へのコメントで書いたとおりのデータです。
http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/mysql_14.htm
MySQL 編14 - 文字関数、連結、空白削除、置換、切出、検索、長さ、数値 - SAK Streets
’3,’
を なくすだけならば・・・。
replace(’1,2,3,4,5’, ’3,’, ’’)
または
concat(substring(’1,2,3,4,5’,1,locate(’,’, ’1,2,3,4,5’,locate(’,’, ’1,2,3,4,5’)+1)),substring(’1,2,3,4,5’,locate(’,’, ’1,2,3,4,5’,locate(’,’, ’1,2,3,4,5’,locate(’,’, ’1,2,3,4,5’)+1)+1) +1))
てなのは どうでしょうか?
ありがとうございます。
http://www.hatena.ne.jp/1108003299
人力検索はてな - MySQLでのSQL文の書き方についてお尋ねします。 1,2,3,4,5というデータがテーブルvarのカラムhogeに入っています。 3だけを取り除いて、1,2,4,5というデータに変えたいので..
UPDATE var SET hoge=replace(hoge,”,3,”,”,”) WHERE hoge=”1,2,3,4,5”;
で1,2,4,5になります。
一応、WHERE句はhoge=”1,2,3,4,5”にしていますが、それ以外の条件の場合、本当に「,3,」を「,」に変更してよいかを検討する必要があります。
例えば、WHEREの条件で「5,4,3,2,1」が引っかかったときに変更してよいのか、
または「1,2,3」が引っかかったときに変更するのか、「11,12,13,14」のときに変更されないか、等も考慮する必要があります。
ありがとうございます。
ご指摘の問題はあると思いますが、今回は大丈夫です。
ありがとうございました。
すいません。舌足らずでした。
+-----------+
| hoge |
+-----------+
| 1,2,3,4,5 |
+-----------+
このような形式なのです。
+---------+
| hoge |
+---------+
| 1 |
+---------+
| 2 |
+---------+
というわけではないです。