代码:
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, '%' )
我在更新查询中做错什么了吗?
任何建议都会受到赞赏。谢谢
答案 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