drop procedure if exists test;
delimiter #
create procedure test()
begin
declare v_max int unsigned default 243;
declare v_counter int unsigned default 1;
declare pName varchar(255);
start transaction;
while v_counter < v_max do
select t.property_name from t.property where t.property_id=v_counter into pName;
SELECT distinct b.property.property_name,b.property.property_id from b.property where b.property.property_name like '%'+pName+'%'
set v_counter=v_counter+1;
end while;
commit;
end #
delimiter ;
是否可以同样进行比较?
答案 0 :(得分:1)
不可能告诉MySQL做这么模糊的比较。它无法知道应考虑以下哪一项&#34;相同的&#34;
如果您的错误数量有限&#34;,您可以在查找中将其标准化
WHERE t.property_name = REPLACE(v.property_name, 'new york times', 'new york')
但当然非常很快变得无法管理。
您是否可以暂时添加新列?然后你可以在一系列预先通过中对数据进行某种清理。
UPDATE t
SET cleanpropertyname = 'new york times'
WHERE property_name IN ('new york times', 'new york', 'nyt')