所以我在我的数据库表中已经有230个国家的名单,在“国家”行中名为“countrylist”。除了“国家”行之外,我还有“代码”行,其中包含该国家/地区的国家/地区代码。
这些国家/地区都是英文版,因为我还需要其他3种语言的国家/地区名称,我也会为其他3种语言复制表格。我还编写了PHP代码,根据语言选择合适的表格。
我已准备好其他3种语言的国家/地区名称列表,它们具有相同的顺序。
但是......这让我有230个国家用3种语言取代,而且我已经知道的东西浪费了很多时间,应该比基本的复制粘贴简单得多。虽然我甚至不知道如何或如果能做到这一点......
我想知道是否有办法保留表中的“代码”行,并用查询/命令替换“country”行中的所有国家/地区?
谢谢,非常感谢任何帮助
答案 0 :(得分:1)
INSERT INTO countries_fr (code) SELECT countries_en.code FROM countries_en
假设您有表countries_fr和countries_en,并且两者都有code
列。
这会将countries_en表中的所有code
插入countries_fr表的代码中。
答案 1 :(得分:0)
您创建关系模型。
country (id, name)
countryLang (countryId, lang, translatedName)
这样,语言与您的父国名无关。
| ID | NAME | COUNTRYID | LANG | TRANSLATEDNAME | --------------------------------------------------- | 1 | Poland | 1 | en | Poland | | 1 | Poland | 1 | pl | Polska |
答案 2 :(得分: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);
答案 3 :(得分:0)
由于之前代码的性质,所有答案都不实用,因此我不得不使用Dreamweaver复制和替换手动重做所有内容。花了一个小时,但它做得很好。