Я пытаюсь передать между двумя таблицами, где один столбец% LIKE% другой.
В таблице "сок" у меня есть заголовок полей, брендид и идентификатор.
В таблице "бренды" у меня есть идентификатор и название.
Поле заголовка из сока всегда будет содержать точное совпадение с названием в торговых марках - наряду с некоторыми другими строками.
Поэтому я пытаюсь проверить, является ли бренд.title% LIKE% juice.title, и если это так, то поставьте brand.id в поле juice.brandid.
Это то, что у меня есть сейчас:
INSERT INTO juice(brandid)
SELECT id FROM brands
WHERE title LIKE CONCAT('%', @juice.title, '%')
Звучит скорее как UPDATE
а не INSERT
. Видишь ли, если
UPDATE juice
SET brandid = (SELECT brands.id
FROM brands
WHERE brands.title LIKE concat('%', juice.title, '%');
работает для вас. Обратите внимание, что для этого требуется, чтобы совпадала только одна строка из brands
. Если количество строк соответствует, вам необходимо дополнительно определить, какой из них является правильным.
+
, вы должны использоватьCONCAT()
.