如何将mysql语句转换为为为值添加特定数字

如何将mysql语句转换为为为值添加特定数字,mysql,regex,sed,Mysql,Regex,Sed,我有四个巨大的mysql表,其中包含地区、国家、城市和街道信息,我可以通过php代码正确地调用它们。所以我要做的是将它们合并到一个表中。我已经有了如下所示的所有值的数据,例如 insert into `table1`(`region_id`,`name`) values (1,'region1'),(2,'region2'),(3,'region3'); insert into `table2`(`country_id`,`region_id`,`name`) values (1,1,'co

我有四个巨大的mysql表,其中包含地区、国家、城市和街道信息,我可以通过php代码正确地调用它们。所以我要做的是将它们合并到一个表中。我已经有了如下所示的所有值的数据,例如

insert  into `table1`(`region_id`,`name`) values (1,'region1'),(2,'region2'),(3,'region3');
insert  into `table2`(`country_id`,`region_id`,`name`) values (1,1,'country1'),(2,1,'country2'),(3,1,'country3');
insert  into `table3`(`city_id`,`country_id`,`name`) values (1,1,'city'),(2,1,'city2'),(3,1,'city3');
insert  into `table4`(`street_id`,`city_id`,`name`) values (1,1,'street1'),(2,1,'street2'),(3,1,'street3');
我发现最简单的方法是如下转换行,然而,我需要使用正则表达式、sed或类似的方法来实现我的目标。如果可以的话,我已经用php代码用这个结构调用了

insert  into `table`(`id`,`name`) values (1,'region1'),(2,'region2'),(3,'region3');
insert  into `table`(`id`,`parent_id`,`name`) values (1001,1,'country1'),(1002,1,'country2'),(1003,2,'country3');
insert  into `table`(`id`,`parent_id`,`name`) values (5001,1001,'city1'),(5002,1001,'city2'),(5003,1002,'city3');
insert  into `table`(`id`,`parent_id`,`name`) values (10001,5001,'street1'),(10002,5001,'street'),(10003,5002,'street3');
是否有任何方法可以转换如上所示的值,或者您有更好的方法吗?
提前感谢,

sed 's/`table[^`]*`/`table`/;s/`[^_`]*_id`/`id`/' YourFile
更改: -第一个表xxx到表xxx -第一个字段\u id到id


只需在shell中检查[`]是否未被解释(通常不是因为简单的引用)

为什么要麻烦使用
sed
?为什么不仅仅是sql语句<代码>从地区、国家、城市中选择region.name、country.name、city.name、street.name,street where region.region\u id=country.region\u id和country.country\u id=city.country\u id和city.city\u id=street.street\u id?因为我已经为特定软件编写了全面的php代码,所以很容易将sql语句转换为一个表,而不是更改整个php代码。所以这就是为什么我需要把所有数据放在一个表中。你有权访问那个mysql服务器吗?是的,我有权插入。加上1000+n对我来说会容易得多。我不完全明白你在说什么。尝试mysql命令行访问该服务器并运行sql语句。您不需要php代码。