Передача значения между двумя таблицами, где одно поле% LIKE% другое

0

Я пытаюсь передать между двумя таблицами, где один столбец% LIKE% другой.

В таблице "сок" у меня есть заголовок полей, брендид и идентификатор.

В таблице "бренды" у меня есть идентификатор и название.

Поле заголовка из сока всегда будет содержать точное совпадение с названием в торговых марках - наряду с некоторыми другими строками.

Поэтому я пытаюсь проверить, является ли бренд.title% LIKE% juice.title, и если это так, то поставьте brand.id в поле juice.brandid.

Это то, что у меня есть сейчас:

INSERT INTO juice(brandid) 
SELECT id FROM brands 
WHERE title LIKE CONCAT('%', @juice.title, '%')
  • 0
    Это хранимая процедура? Помните, что MySQL не может объединять строки с + , вы должны использовать CONCAT() .
  • 0
    Не хранимая процедура, обновилась с предложением и больше не получает ошибок, но изменяется 0 строк.
Показать ещё 7 комментариев
Теги:
like

1 ответ

0
Лучший ответ

Звучит скорее как UPDATE а не INSERT. Видишь ли, если

UPDATE juice
       SET brandid = (SELECT brands.id
                             FROM brands
                             WHERE brands.title LIKE concat('%', juice.title, '%');

работает для вас. Обратите внимание, что для этого требуется, чтобы совпадала только одна строка из brands. Если количество строк соответствует, вам необходимо дополнительно определить, какой из них является правильным.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню