mysql - 如果另一种语言为空,请选择一种语言的值

标签 mysql

我有一个包含 key_id、id、text、lang 的表。

我需要以一种语言(例如 DE)检索表格中的所有文本字段(因此没有限制),但如果在这种语言中该字段为空,我需要以英语检索它。

例子:

key_id, id  text       lang
1       1   hi         en
2       1   Guten Tag  de
3       2   nothing    en
4       2   ''         de

我需要结果,使用 DE 语言搜索:

古腾
什么都没有
-> 这是因为在德语中它是空的...

我该怎么办?

最佳答案

你的问题没有把表结构说清楚所以很难给你写Sql。但是,我认为您想要做的是同时选择单词的默认(en)值和当前(de)版本。然后提供所选值是一件简单的事情。

select ifnull(de.text, en.text)
from
  words de
  join words en on
    en.id = de.id and
    en.lang = 'en'

where de.lang = 'de'

关于mysql - 如果另一种语言为空,请选择一种语言的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7556431/

相关文章:

mysql - 是什么导致 MySQL 交换使用并最终导致 oom_killer

java - 在 Sql 查询中获取语法错误

MySQL 通过 ODBC 5.2 插入到 bit(1) 列

php - 制作喜欢/不喜欢 AJAX 脚本 - 不起作用

通过phpmyadmin将列INT更改为Double时出现Mysql错误

javascript - PHP 表单 > JS OnUpdate > AJAX > 应该返回 MySQLi 数据,但我不明白代码

mysql - 在 SQL 查询中使用 'IF' in 'SELECT' in 'WHERE' 子句的结果

mysql - 查看重复记录和多个where子句错误

mysql - 无法删除添加主键

mysql - 数据库设计的最佳方法