2014-07-23 140 views
0

我有一个表命名为“公司”,我存储有关公司立陶宛是我列出的,因此columnns被命名为名称,PHONENUMBER,镇,邮政编码等匹配两个表的SQL

一般信息但是,在我的MySQL表中输入数据时,还有一个名为“region”的列,我没有填写任何内容。游民。因此,整列是空的(即没有行在“地区”字段中携带值)

但是,我有另一个表,名为“地区” - 由两列组成:region_name & zipcodes - 其中所有该国每个地区的邮政编码都被储存起来,只有在线路中断时才会被分开。

我如何脚本的更新语句将在REGION_NAME填写对应于各行的邮编(即每家公司)的公司表

例子:

一家公司有一个名为'companies'的表中的5000邮政编码但没有列出地区。名为“区域”的表格在region_name为“Northwest”的行中具有邮编5000,其中值由其他邮政编码夹在中间,并用换行符分隔。

这里的“区”表的图像:

http://i.snag.gy/MRQje.jpg

我现在该如何脚本中的PHP或SQL语句,即会填写“西北”为有拉链码匹配的区域公司?

到目前为止,我还做这样的:

$result = mysql_query("SELECT * FROM companies WHERE zipcode LIKE '$something_here'") 
or die(mysql_error()); if(mysql_num_rows($result) > 0){ 
echo mysql_num_rows($result); 
while ($row = mysql_fetch_assoc($result)){ 
} } else { echo "no matches"; } 
} else { echo "ingen matches."; } 
+2

与我们分享什么你试过了吗?您可以设置一个SQL小提琴 - http://sqlfiddle.com/ –

+0

可能的重复[使用MySQL LIKE匹配邮编和分配区域](http://stackoverflow.com/questions/24901697/using-mysql-like-to -match-zipcodes-and-assign-regions) –

+0

示例数据对于这类事情确实很有帮助。另外,PostgreSQL标签,是吧? –

回答

0

我很怀疑,你可以在短短SQL实现这一目标。

但是,转念一想,我不明白,在companies表这些区域填充的需要,您可以随时在regions表查询找到region

Select c.name, c.phonenumber, c.town, c.zipcode, r.region_name 
from companies c, regions r where r.zipcode like '%' + c.zipcode + '%' 
and c.zipcode like '%something here%' 
+0

即使邮政编码被换行符分开,这是否可以应用?既然你把这两个等同起来,就不会有任何匹配,对吧? – user3866921

+0

linebreak是什么意思? –

+0

邮政编码存储为: http://i.snag.gy/MRQje.jpg – user3866921