Codeigniter:DB列选择回退

时间:2013-05-24 11:04:27

标签: mysql codeigniter

我正在开发一个codeigniter多语言应用程序,我即将在db中存储语言,如下所示:

+++++++++++++++++++++++++++++
   id   +   EN    +   HU
+++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++
   hy   +   Hy!   +   Szia!
+++++++++++++++++++++++++++++
    1   +   One   +   Egy

在“HU”列中可能会出现一个值为空但在“EN”中填充的值,因为这是默认语言。所以问题是我如何选择“HU”列,如果它为空,则选择“EN”值后退。

我知道选择这两个列并运行一个简单的PHP脚本可以轻松解决,但我的计划是只用MySQL来解决这个问题。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

尝试那样;

SELECT ( CASE WHEN HU IS NULL OR HU = '' THEN EN ELSE HU END ) AS LANG
FROM table_name
WHERE id = '1'
当hu为空时

结果id ='1'

One
当hu不为空时

结果id ='1'

Egy

注意:此查询只有在您尝试使用lang HU时才能正常工作!

CASE WHEN条件是SQL的IF statement