我有一个 mysql 查询,如果它找到一个值,它应该返回一行,否则它应该使用默认值: 我的意思是,我会尝试找到一种特定的语言来返回行,如果找不到这种语言,查询应该使用默认的特定语言变量。 (在 PHP 代码中) 例如。 $language=FR ,查询应该返回 FR 语言行,否则,应该返回默认的 EN 语言行
Select * from my_table where lang="$language"
如果找不到 FR 语言(或任何其他语言),我想将 EN 语言行返回为默认行。 我该怎么做?
最佳答案
一个巧妙的技巧:)
select SQL_CALC_FOUND_ROWS * from my_table where language="FR"
union all
select * from my_table where language="EN" and FOUND_ROWS() = 0
联合中的第二个查询仅在第一个查询未找到行时执行。
阅读更多相关信息 here .
关于带有替代项的 mySQL where 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29945199/