在加入条件的更新查询中,Like无法正常工作

时间:2019-01-04 04:22:08

标签: php mysql sql-update sql-like

代码:

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

我在更新查询中做错什么了吗?

任何建议都会受到赞赏。谢谢

2 个答案:

答案 0 :(得分:1)

您可以在下面尝试-

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

答案 1 :(得分:1)

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