2017-08-01 6 views
2

mysqlのupdateを使用してカラムの特定の値を設定する方法は?続きMysql:updateを使用してカラムの特定の値を設定する

は私のコードです:

update contact set admin_id = ' ' where admin_id like '%,519,%' and id='31' 

enter image description here

私はcontactを命名した画像のように、私は列名admin_idを定義したテーブルを持っています。 ID:,519,520,521です。admin_idから519のみを削除し、admin_id列内に,520,521としたいとします。

これを達成するためのクエリは何ですか。

+1

使用 'replace'機能 – ASR

+0

あなたはカンマ区切り値を格納するためにもよろしいですか?これは悪名高い設計です。 – Strawberry

答えて

3

これは動作するはずです -

update contact 
set admin_id = replace(admin_id, '519,', '') 
where admin_id like '%,519,%' 
and id='31' 

replace()

+0

codeigniterモデルでこのクエリを使用する方法@Sougata Bose $ re = replace(admin_id、 '$ client_id、'、 ''); \t \t $データ=配列( \t \t \t \t 'ADMIN_ID' => $ \t \t \t \t再)。 \t \t $ where = "admin_idのように '%$ client_id%'とid = '$ id'"; \t \t $ this-> db-> where($ where); \t \t $ this-> db-> update( 'contact'、$ data); – omkara

+0

わかりません。しかし、生の表現 –

+0

okkを実装するにはいくつかの方法が必要ですが、このクエリを実行すると、エラーが表示されます。つまり、未定義の関数replace()を呼び出します。 – omkara

3

あなたはこの

UPDATE contact SET admin_id = REPLACE(admin_id, ',519,', ',') 
WHERE admin_id LIKE '%,519,%' AND id='31' 
3

を達成するためにMySQLのREPLACE()を使用することができ、私はこのようなものが動作するはずです(ただし、テストしていないと思います。.. )

UPDATE contact 
SET admin_id = REPLACE(admin_id, '519', '') 
WHERE admin_id like '%,519,%' and id='31' 

あなたはここで詳細を見つけることができます。

https://dev.mysql.com/doc/refman/5.7/en/replace.html

関連する問題