我有一张桌子,其中一列包含城市名称。
大多数城市都可以,但有些城市可能有缩写,有或没有句号
英尺。值得
值得
如果我有一个没有句号Ft Worth
的值,我如何查询该表以查找所有匹配的城市?
答案 0 :(得分:2)
使用正则表达式使句点可选:
WHERE city RLIKE 'Ft[.]? Worth'
如果您想与搜索字符串进行比较时忽略表格中的所有句点:
WHERE REPLACE(city, '.', '') = 'Ft Worth'
答案 1 :(得分:1)
我可能倾向于使用replace()
:
select replace(city, '.', '') = 'Ft Worth'
这种方法的一个很好的方面是你可以使用in
:
select replace(city, '.', '') in ('Ft Worth', 'Gun Barrel City', 'Kermit')
然而,我会怀疑并认为可能存在其他问题。例如,你可能有“沃思堡”。
在任何情况下,您都应该清理数据:
update t
set city = 'Ft Worth'
where city = 'Ft. Worth';
或
update t
set city = replace(city, '.', '')
where city like '%. %';