带有替代项的 mySQL where 子句

标签 mysql

enter image description here我有一个 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/

相关文章:

java - 这个 SQL 语句可以在 JPQL + 指南中使用吗?

Mysql:在外部查询中针对选择子查询结果使用where比较运算符

php - 存储phphash密码的数据类型

mysql - SQL - 当在另一列中发现重复值时过滤另一列

php - 最大员工工作时间的 MySQL 子查询

php - PDO 更新不替换准备好的语句中的占位符

python - Django AWS RDS MySQL 错误 : (2026, 'SSL connection error: error:00000001:lib(0):func(0):reason(1)' )

mysql - 查看来自单独行的是/否信息分组为两列的单行

php - mysql数据库当前时间与其他时间的区别

php - 将 PHP 变量传递给 MySQL