我需要本地化我的查詢結果。要做到這一點,我有:MySql文本本地化
- 該表
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'
。
Thaks提前!
你介意加入你的表結構? 'ORDER BY FIELD'可能是這個需要這麼長時間的一個原因。我明白,你可能沒有翻譯所有語言的所有單詞,但是如果你沒有丹麥語可用,顯示韓語真的有意義嗎?通常你有你的默認語言,例如英語,如果您沒有使用所需語言的術語,則可以使用英語。 – 2013-04-23 22:28:29