直接関係のない2つのテーブルがあります:data
およびlocations
以下の列
locations : id (serial number) name and code
data : locCodes
"|loc1|loc2|loc3|"として区切られた場所コードのリストを含む .
locCode
indata
をid
fromに置き換えたいlocations
。やってみるが取れない。
このクエリは正しいように見えますが、実際には更新部分を正しく取得できません。
SELECT REPLACE( data.locCodes , CONCAT('|', location.code, '|'), CONCAT('|', location.id, '|'))
FROM data, location
WHERE INSTR(data.locCodes, CONCAT('|', location.code, '|')) > 0
http://sqlfiddle.com/#!2/02379/3を参照してください。
UPDATE data
SET locCodes = (SELECT REPLACE( data.locCodes , CONCAT('|', location.code, '|'), CONCAT('|', location.id, '|'))
FROM data, location
WHERE INSTR(data.locCodes, CONCAT('|', location.code, '|')) > 0);
FROM に関するエラーをスローします。MySql は非常に新しいため、ガイダンスをいただければ幸いです。