Like 在连接条件的更新查询中没有按预期工作
Like is not working as expected in update query of join condition
代码:
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 声明中,我得到了上述案例的结果。(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, '%' )
我在更新查询中做错了什么吗?
任何建议都会 appreciated.Thank u
您可以尝试以下 -
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 ,'%')
在您的 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
代码:
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 声明中,我得到了上述案例的结果。(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, '%' )
我在更新查询中做错了什么吗?
任何建议都会 appreciated.Thank u
您可以尝试以下 -
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 ,'%')
在您的 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