Like не работает должным образом в запросе на обновление условия соединения - PullRequest
0 голосов
/ 04 января 2019

Код:

UPDATE elections_ls_2014_stats e
      JOIN `pc-details` p
      ON ( e.name LIKE CONCAT('%' ,p.candidate_name ,'%') )
SET    e.pc_details_id = p.id  WHERE  p.year =  '2014'
AND p.`candidate_results_position` ='1' AND e.pc_details_id IS NULL

Здесь все работает не так, как ожидалось, например, д-р Пандула Равиндра Бабу И Пандула Равиндра Бабу

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

, но в операторе выбора я получаю результат для вышеупомянутых случаев. (Доктор Пандула Равиндра Бабу И Пандула Равиндра Бабу)

код:

SELECT pd.id AS pc_details_id, el.id AS election_2014_id, pd.candidate_name, el.name
FROM  `pc-details` pd,  `elections_ls_2014_stats` el
WHERE pd.`year` LIKE  '2014'
AND pd.`candidate_results_position` =1
AND pd.candidate_name LIKE CONCAT(  '%', el.name,  '%' ) 

Я что-то не так делаю в запросе на обновление.

Любое предложение будет оценено. Спасибо

Ответы [ 2 ]

0 голосов
/ 04 января 2019

В вашем запросе UPDATE выражение LIKE противоположно тому, как оно есть в вашем запросе SELECT.Попробуйте вместо этого:

UPDATE elections_ls_2014_stats e
      JOIN `pc-details` p
      ON p.candidate_name LIKE CONCAT('%', e.name,  '%') 
SET    e.pc_details_id = p.id  WHERE  p.year =  '2014'
AND p.`candidate_results_position` ='1' AND e.pc_details_id IS NULL
0 голосов
/ 04 января 2019

Вы можете попробовать ниже -

  UPDATE elections_ls_2014_stats e
          JOIN `pc-details` p
    SET    e.pc_details_id = p.id  
    WHERE  p.year =  '2014'
    AND p.`candidate_results_position` ='1' AND e.pc_details_id IS NULL and  e.name LIKE CONCAT('%' ,p.candidate_name ,'%') 
...