查询与ommited期间

时间:2018-02-05 22:16:18

标签: mysql sql

我有一张桌子,其中一列包含城市名称。

大多数城市都可以,但有些城市可能有缩写,有或没有句号

  

英尺。值得

     

值得

如果我有一个没有句号Ft Worth的值,我如何查询该表以查找所有匹配的城市?

2 个答案:

答案 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 '%. %';