1
示例表:MySQL的限制2比兩個查詢性能
id name alias_page lang content
1 nombre_pagina nombre_pagina es spanish content
2 page_name nombre_pagina en english content
3 pagina_2 pagina_2 es spanish content
在上面的表中的每個頁面只有一種語言在他們的母語和alias_page名稱(西班牙語這裏)
返回英語頁面(ID = 2),因爲比賽alias_page和郎
SELECT * FROM content
WHERE
(name = 'nombre_pagina' OR alias_page = 'nombre_pagina')
AND
lang = 'en'
LIMIT 1;
但是,如果在所要求的語言不存在(例如:pagina_2
)的頁面,我需要用另一種語言檢索(SP自動翻譯用途變更阿尼什默認)
我的解決方案1(結果將在PHP管理):
SELECT * FROM content
WHERE
(name = 'pagina_2' OR alias_page = 'pagina_2')
AND
(lang = 'en' OR lang = 'es')
LIMIT 2;
我溶液2:
SELECT SQL_CALC_FOUND_ROWS * FROM content
WHERE
(name = 'pagina_2' OR alias_page = 'pagina_2')
AND
(lang = 'en')
LIMIT 1;
if(FOUND_ROWS() = 0) THEN
SELECT FROM content
WHERE
(name = 'pagina_2' OR alias_page = 'pagina_2')
AND
(lang = 'es')
LIMIT 1;
END IF;
其中兩個是更好的? 還是另一種解決方案比兩者都好?
是sr。這看起來好像看起來好多了。謝謝 – MTK