Я прочитал довольно много вопросов об обновлении selcet +, но не могу понять, как это сделать. Так что придется с самого начала спрашивать.
Я хотел бы обновить таблицу на основе данных в другой таблице. Настройка выглядит так:
- TABLE a ( int ; string )
ID WORD
1 banana
2 orange
3 apple
- TABLE b ( "comma separated" string ; string )
WORDS TEXTAREA
0 banana -> 0,1
0 orange apple apple -> BEST:0,2,3 ELSE 0,2,3,3
0 banana orange apple -> 0,1,2,3
Теперь я хотел бы, чтобы для каждого слова в TABLE добавлялось ", a.ID" к b.WORDS, например:
SELECT id, word FROM a
(for each) -> UPDATE b SET words = CONCAT(words, ',', a.id) WHERE b.textarea like %a.word%
Или даже лучше: замените слово, найденное в b.textarea, на «, a.id», так что это b.textarea, который в конечном итоге будет содержать строку идентификаторов, разделенных запятыми ... Но я не знаю, является ли это возможно.
Пробовал это, но не работает. Но я думаю, что все ближе:
UPDATE a, b
SET b.textarea =
replace(b.textarea,a.word,CONCAT(',',a.id))
WHERE a.word IN (b.textarea)
ORDER BY length(a.word) DESC