我有一张包含城市的表格:
- 城市编号
- 姓名
- 语言代码
示例数据(city_id、名称、语言代码):
- 1, LondonName, en
- 1, LondonName, de
- 1, LondonName123, jp
- 2,巴塞罗那,en
- 2, Barcelona123, de,
- 3,马德里,en
我如何获取某种语言(即德)的所有城市,但如果没有该语言的城市翻译,我想获取该行的默认语言(即英语)的翻译。
所以,语言代码“de”的结果应该是这样的:
- 1, LondonName, de
- 2, Barcelona123, de
- 3,马德里,en
数据库:MySQL
最佳答案
我通常更喜欢使用 JOIN 而不是内部选择,所以这是第二个选项:
SELECT c.city_id,
IF(c2.name IS NULL,c.name,c2.name) 'name',
IF(c2.languagecode IS NULL, c.languagecode, c2.languagecode) 'languagecode'
FROM cities c
LEFT JOIN cities c2 ON c.city_id = c2.city_id AND c2.languagecode = 'de'
WHERE c.languagecode = 'en'
GROUP BY c.city_id
关于mysql - 以某种语言获取行的 SQL 查询(使用默认语言),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5694637/