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