在连接条件的更新查询中,类php没有按预期工作

xqnpmsa8  于 2021-06-17  发布在  Mysql
关注(0)|答案(2)|浏览(353)

代码:

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

在这里它不像预期的那样工作例如:pandula ravindra babu医生和pandula ravindra babu医生
这是一种情况,其中此条件未按预期工作,表示更新查询未工作。
但在特别声明中,我得到了上述病例的结果
代码:

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,  '%' )

我在更新查询中是否做错了什么。
任何建议都将不胜感激

z5btuh9x

z5btuh9x1#

你可以试试下面-

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 ,'%')
mqkwyuun

mqkwyuun2#

在你的 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

相关问题