Я прочитал довольно много вопросов о selcet + update здесь, но не могу понять, как это сделать. Так что придется спросить с самого начала.mysql select update
Я хотел бы обновить таблицу на основе данных в другой таблице. Установка такова:
- 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
Теперь я хотел бы для каждого слова в таблице А дописывания «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, которая заканчивается запятой, разделенной строкой id ... Но я не знаю, возможно ли это.
Пробовал это, но не работал. Но я думаю, что приближаюсь:
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