朋友今天問我乙個問題:有兩張資料表 bureau_area_code 和 county_code,我想用town_code擷取前6位去和county_code擷取前6位查詢,查到對應的county_name該咋寫?
下面先是兩張表結構:
1create
table
`bureau_area_code` (
2 `id` int(10) unsigned not
null
auto_increment,
3 `town_code` text
,4 `town_name` text
,5 `province_code` varchar(255) default
null
,6 `province_name` varchar(255) default
null
,7 `city_code` varchar(255) default
null
,8 `city_name` varchar(255) default
null
,9 `county_code` varchar(255) default
null
,10 `county_name` varchar(255) default
null,11
primary
key(`id`)
12 )
1bureau_area_code 的資料是這樣的:create
table
`county_code` (
2 `id` int(10) unsigned not
null
auto_increment,
3 `county_code` text
,4 `county_name` text,5
primary
key(`id`)
6 );
county_code 的資料是這樣的:
下面上**:
1這裡用到了 mysql 的內部函式 left,可以直接擷取字串。所以 where 的時候就直接使用 left 函式比較擷取完的前6位就行。update
bureau_area_code, county_code
2set bureau_area_code.county_name =
county_code.county_name,
3 bureau_area_code.county_code =
county_code.county_code
4where
left(bureau_area_code.town_code, 6) =
left(county_code.county_code, 6);
要注意:資料來源的那張表 county_code 也要在 update 中註冊一下,不然會有 unknown column 的錯誤。
mysql用乙個表更新另乙個表的方法
solution 1 修改1列 update student s,city c set s.ci程式設計客棧ty nam程式設計客棧e c.name where s.city code c.code solution 2 修改多個列 update a,b程式設計客棧 set a.title b.ti...
Mysql 用乙個表的字段更新另乙個表的字段
將users表中的使用者暱稱 nick欄位 的值用usermaptable中的使用者名稱資訊 nick欄位 代替,如果usermaptable表中找不到users表中的使用者,則這一行不做修改,只修改usermaptable和users同時存在的使用者資訊。下面提供兩種寫法,親測可用 update ...
Oracle根據乙個表更新另乙個表的幾種寫法
1.declare cursor t1 is select from tablename begin for rec in t1 loop update tablename t set t.detail rec.jieshao where t.objectid rec.objid end loop ...