我需要本地化我的查询结果。为此,我有:
- 表格
Show
,id
以及其他一些信息; ShowName
带有idShow
,name
的表格lang
(对于每个节目有多个showName
s 其中Show.id
=ShowName.idShow
)
我的查询现在可以正常工作:
select Show.*,
(SELECT name FROM ShowName
WHERE Show.id=ShowName.idShow
ORDER BY FIELD(lang,'$userPreferredLanguage','en','it','es','fr','de','pt','da','he','pl','nl','hu','no','sl', 'fi','sv','tr','cs','hr', 'el','ru','zh','ja','ko')
LIMIT 0,1) as name,
from Show
现在,问题是:有没有办法稍微加快速度?查询原样大约需要 3 秒,其中 2 秒用于计算内部SELECT
. 我试过了INNER JOIN
,但我不知道如何省略第二个选择。PS:注意ShowName
可能没有所有的本地化,所以我需要使用FIELD
函数而不是简单的WHERE lang = '$userPreferredLanguage'
.
提前谢谢!