0

因此,我的数据库表中已经有 230 个国家的列表,名为“countrylist”,位于“country”行内。除了“国家”行之外,我还有“代码”行,其中包含该国家/地区的国家代码。

这些国家是英文的,因为我也需要其他 3 种语言的国家名称,所以我也复制了其他 3 种语言的表格。我还编写了 PHP 代码以根据语言选择正确的表。

我已经准备好其他 3 种语言的国家名称列表,它们的顺序相同。

但是......这让我有 230 个国家可以用 3 种语言替换,而且我已经知道应该比基本复制粘贴简单得多的东西浪费了很多时间。虽然我什至不知道如何或是否可以做到这一点......

我想知道是否有办法保留表中的“代码”行并用查询/命令替换“国家”行中的所有国家?

谢谢,非常感谢任何帮助

4

4 回答 4

1
INSERT INTO countries_fr (code) SELECT countries_en.code FROM countries_en

假设您有表 countries_fr 和 countries_en,并且两者都有code列。这会将 countries_en 表中的所有数据插入codecountries_fr 表的代码中。

于 2013-04-18T01:17:49.490 回答
0

所以它是标准化的,你必须为表中的其他 3 个名称添加列,所以(用所需的语言替换语言):

alter table countries add french varchar(45),spanish varchar(45),russian varchar(45);

由于代码完全相同,因此您可以将其作为关键字段使用。

update countries c set c.french=(select country from french where french.code = countries.code),
c.spanish=(select country from spanish where spanish.code = countries.code),
c.russian=(select country from russian where russian.code = countries.code);

另一方面...

如果您要简单地替换国家名称,则必须维护 4 组代码。

update countries set country=(select country from language2 where language2.code=countries.code);
于 2013-04-18T01:28:50.170 回答
0

您创建一个关系模型。

country (id, name)
countryLang (countryId, lang, translatedName)

这样,语言就独立于您的母国名称。

| 身份证 | 姓名 | 国家ID | 朗 | 翻译姓名 |
-------------------------------------------------- -
| 1 | 波兰 | 1 | zh | 波兰 |
| 1 | 波兰 | 1 | pl | 波兰 |

查看演示

于 2013-04-18T01:09:36.077 回答
0

由于之前代码的性质,没有一个答案是实用的,所以我不得不使用 Dreamweaver 复制和替换手动重做所有事情。花了一个小时,但它做得对。

于 2013-04-25T01:20:38.280 回答