我有两个表,一个包含英国所有唯一的城镇名称,另一个包含人类输入的居住国。当然,人类会写诸如“英国伦敦”或“英国卡迪夫”之类的东西。
我需要合并country_of_residence列,因此我创建了一个表,其中包含英国几乎所有的9000个记录的城镇,县,城市和村庄。
如果列country_of_residence
的记录包含表entity
的列uk_geo_entities
中的任何记录,我想更新列a_table uk_geo_entities
country_of_residence | ... entity | ...
-------------------- + ... ------ + ...
london, uk london
cardiff, england cardiff
UPDATE a_table
SET country_of_residence = 'united kingdom'
FROM (SELECT entity
FROM uk_geo_entities) b
WHERE country_of_residence LIKE '%'||b.entity||'%';
。
我在这里阅读了很多答案,但是它们都尝试通过检查或更新一个字符串来进行更新,我需要针对列的每个记录进行此操作。
UPDATE psc_sharing_dodgy_officers
SET country_of_residence = 'united kingdom'
WHERE country_of_residence LIKE '%'||(SELECT entity FROM
uk_geo_entities)||'%';
和
a_table
country_of_residence | ...
-------------------- + ...
united kingdom
united kingdom
运行,但是什么也没有发生。
查询成功后,我需要查看
import React from 'react';
import ReactDOM from 'react-dom';
const colors=["white","green","blue", "red", "orange"];
class Grid extends React.Component{
constructor(props){
super(props);
this.state={
color: colors[0]
};
}
setCurrentColor(setColor){
this.setState({
color: setColor
});
}
setColorSelections(){
const colorItems = colors.map((thecolor) =>
<li
onClick={(thecolor) => this.setCurrentColor(thecolor) }
key={thecolor} >
{thecolor}
</li>
);
return(
<ul>
{colorItems}
</ul>
)
}
render(){
return(
<div>
<p>Current selection: {this.state.color}</p>
{this.setColorSelections()}
</div>
)
}
}
答案 0 :(得分:0)
您可以在WHERE子句中使用EXISTS进行操作:
UPDATE a_table a
SET country_of_residence = 'united kingdom'
WHERE EXISTS (
SELECT entity
FROM uk_geo_entities
WHERE a.country_of_residence LIKE '%' || entity || '%'
)
请参见demo。