Удалить на основе LIKE и подстановочного знака из другой таблицы

#mysql #sql

#mysql #sql

Вопрос:

Вот запрос, который я пытаюсь выполнить, чтобы вы поняли, что я пытаюсь сделать. Я пытаюсь использовать подстановочный знак в другом поле, чтобы они совпадали на основе сходства, а не точного совпадения, потому что, например, в wr_report_sites таблице будет запись Chicago , где в sites таблице запись будет Chicago , IL. Мне просто нужно сопоставить на основе того факта, что оба содержат Chicago .

 DELETE wr FROM WR_reported_Sites wr
    INNER JOIN sites s
    ON wr.Site_Name LIKE %s.Site_Name%
  

Комментарии:

1. Пожалуйста, отредактируйте вопрос и включите таблицы, на которые ссылаются, и образцы данных. Спасибо

Ответ №1:

…в таблице wr_report_sites будет запись Чикаго, где в таблице сайтов запись будет Чикаго, Иллинойс…

Условие в ON предложении должно быть:

 ON s.Site_Name LIKE CONCAT('%', wr.Site_Name, '%')
  

потому что wr.Site_Name содержится в s.Site_Name .

Комментарии:

1. Спасибо, что, кажется, сработало отлично. И я все больше и больше узнаю о правильном синтаксисе. Большое вам спасибо.

2. @doctorO20 отлично, если это сработало, и не забудьте принять ответ, нажав на галочку.

Ответ №2:

Может быть это?

     DELETE FROM WR_reported_Sites 
    WHERE   Site_Name IN (SELECT wr.Site_Name FROM R_reported_Sites wr INNER                 
    JOIN sites s ON wr.Site_Name LIKE '%'   s.Site_Name  '%')