包含以下列和数据的表,例如:
---------------------------------------------------------------------------------
| Address | AddressLine2 | AddressLine3 | Locality | District | State | Country |
---------------------------------------------------------------------------------
|Sector-12| | | | Faridabad| Har | IN |
| 311 | | | Sector 3| Faridabad| Har | IN |
|Sector-1,| | | | Faridabad| Har | IN |
|Plot 31 | | | Old Fari | Faridabad| Har | IN |
| | | |dabad | | | |
---------------------------------------------------------------------------------
我在这里想要描述的是Address,AddressLine2,AddressLine 3,Locality中的数据可以是绝对随机的。
使用学校表格中的上述列检测当前位置并查找数据库中附近的学校。
使用Google API查找附近的学校,该API返回学校的名称及其地址。
E.g。返回数据:
Name: St. Albans School
Address: Sector 1, Old Faridabad, Faridabad, Har, IN
预期结果:
地址为Sector-1
且地区为Old Faridabad
<小时/> 区,州和国家/地区将使用当前位置自动获取。
为了处理地址的其余部分,目前正在进行的是学校地址基于,
爆炸,并生成了使用IN
的mysql查询。
示例查询:
Select * from Schools where Address IN ('Sector-1', 'Sector 1', Sector- 1'. 'Old Faridabad', ...)
然而IN query
的问题是:
- 如果地址列包含"Sector-1,"
之类的字符串,则匹配失败。
另一种方法:
Select * from Schools where Address REGEX "Sector-1|Sector 1|Sector- 1|Old Faridabad|..."
这种方法存在问题,如果学校地址如下:314,Sector 19,Faridabad。根据{{1}}拆分字符串会在查询中生成,
的搜索条件。因此,地址:314,第31区,法里达巴德的学校也会产生一场比赛,尽管这些学校相距甚远。
有关如何编写mysql查询的任何建议,这有助于选择正确的学校。
注意:地址还可以包含以下文字:314
。
答案 0 :(得分:0)
听起来你只需要检查前导和尾随逗号:
REGEX "(^|, )(Sector-1|Sector 1|Sector- 1|Old Faridabad|...)(,|$)"