我正在开发CakePHP中的应用程序系统。每个申请都包含申请人的地址和(仅限英国)邮政编码。
客户希望能够将“邮政编码区域”分配给其团队的特定成员。
不幸的是,邮政编码区域的格式和长度各不相同 - 示例:TA
,TQ1
,S60
,BS22
,TA6 4EJ
如果需要,用户希望能够在每个用户的基础上指定整个区域或更具体的区域。
我需要能够获取每个prefix
并将其与每个应用程序的postcode
进行比较,并返回任何匹配项。
用户Ross
使用以BQ
开头的邮政编码管理应用程序。 BS
和S60
用户Dave
管理包含完整邮政编码的应用:BS22 4JL
和TA6 7EJ
我认为最好的方法是拥有一个充满用户定义的邮政编码前缀的表格:
id | prefix
1 | TQ
2 | TL
3 | S50
4 | S55
5 | TA6 4EJ
为每个用户分配一个邮政编码区域进行管理。
我在想如果我可以将每个应用程序的邮政编码与每个前缀进行比较,我可以检索给定邮政编码区域中的所有应用程序,然后查找该用户所属的用户。
id | postcode
1 | tq33 abc
2 | TL5 8HA
3 | s50 11l
不幸的是,邮政编码数据不是任何标准/常规格式;所以这可能会变得棘手。
听起来我需要JOIN
prefix
对邮政编码;但由于没有钥匙,我认为这是不可能的。
prefix
和postcode
之间没有直接关联。感觉我错过了一些基本的东西
任何指针?
答案 0 :(得分:1)
尝试:
SELECT users.name, app.* from applications app, users, postcodes where app.postcode LIKE CONCAT(postcodes.prefix,'%') AND postcodes.user_id = users.id