mysql - 以某种语言获取行的 SQL 查询(使用默认语言)

标签 mysql sql

我有一张包含城市的表格:

  • 城市编号
  • 姓名
  • 语言代码

示例数据(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/

相关文章:

php - 如何通过另一个查询对 MYSQL 查询进行排序?

mysql - 将模型同步到服务器时 MySQL Workbench 中出现错误 1064

sql - excel中的东西功能

php - 当字段类型为 varchar 时,短日期会出现问题

sql - 如何检测一个字符串是否至少包含一个数字?

mysql - 卡在选择查询上

php - 手动获取从主要 WordPress 网站到 WordPress 博客的链接

sql - 如何在不对 SQL 中的结果进行分组的情况下应用 SUM 运算?

php - 将 mysql 结果(大关联数组)转换为嵌套数组

SQL Server - 返回 sysobjects 的架构