2016-03-31 8 views
0

ここでは、ものです:次にのMySQL:別のテーブルの値に基づいて列の値の一部を交換する方法は、(単一のクエリで)あり

table1 
ID Name Playlist 
1 Hi  Category1|Category2|Category3 
2 Ho  Category2|Category4|Category6 
etc... 

: 私は、次のような列を得ました別の表:

table2 
ID Name 
1 Category1 
2 Category2 
3 Category3 
.... 

表1の値の文字列は、実際には「カテゴリ1 |カテゴリ2 |カテゴリ3」です。 クエリの後、TABLE1が次のようになりますように、私は、表2から、それぞれのIDでTABLE1のプレイリストの列内のすべての文字列を置き換えるために、単一のクエリをしたいと思います:

table1 
ID Name Playlist 
1 Hi  1|2|3 
2 Ho  2|4|6 
etc... 

私はプログラミングaでこれを行うことができますループや何かの並べ替えが、私はそれを単一のクエリで持っているが、私はどのように具体的に列の値の一部を別の値に置き換えるか分かりません。

それだけだった場合:私は本当にこのために要求されたクエリをしたいが、私はまだのための提案を聞きたい

UPDATE table1 a, table b SET a.playlist = b.Name WHERE a.`Playlists` = b.`Name`; 

table1 
    ID Name Playlist 
    1 Hi  Category1 
    2 Ho  Category2 
    etc... 

私はその後のようなクエリを使用しますこれを行うより良い方法。事前に

感謝:)

答えて

0

フム、私はそれはあなたが想像できるよりも困難だと思います。これは照会してみてください。
1.To見、あなたが上記のクエリの?:

SELECT playlist,REPLACE(playlist,'category','')AS MyResult FROM table1; 

2.Ifは「Myresult」を取得しようとする結果は、あなたがちょうどあなたのテーブルを更新したいものです。

UPDATE table1 SET playlist=REPLACE(playlist,'category',''); 
関連する問題