我有两张桌子。 新闻:ID,主题,作者,出版商 区域设置: news_id,lang_id,name 表格新闻与区域设置一对多关系。
在我的网站上, 如果新语言被激活,那么我需要添加激活的语言变量(从相应的新的默认lang值中获取值)到表语言环境 如果停用新语言,那么我需要从表语言环境中删除激活的语言变量 此过程与新闻表中的所有条目相同。
例如: -
表 - 新闻:
id主题作者出版人
1个样本1 author1 publisher1
2 sample2 author2 publisher2
表 - 区域设置:
news_id lang_id名称
1 1 news1 - 德语
1 2 news1 - 英语
1 3 news1 - 法国
2 1 news2 - 德语
2 2 news2 - english
2 3 news2 - 法语
如果我激活'italian'lang,我需要添加以下条目:
news_id => 1 lang_id => 4 name => news1 - 意大利语
news_id => 2 lang_id => 4 name => news2 - 意大利语
如果我停用'english'lang,我需要删除以下条目:
news_id => 1 lang_id => 2 name => news1 - 英语
news_id => 2 lang_id => 2 name => news2 - english
我需要使用MYSQL(单个查询)来完成此过程。
答案 0 :(得分:0)
查询语言激活:
INSERT IGNORE INTO
`locale`
( `news_id`,
`lang_id`,
`name`
)
SELECT * FROM
(SELECT `news_id`,
' . $activatedLangId . ',
`name`
FROM `locale`
WHERE lang_id = ' . $defaultLangId . '
) as tmp
查询语言停用:
DELETE FROM `locale` WHERE lang_id = ' . $deactivatedLangId
注意:在语言环境表中,news_id和lang_id被编入索引。