MySQL返回精确结果或如果没有精确匹配则返回次要结果

标签 mysql

如果我的值存在,我想返回一行,如果不存在,我想返回另一行。

我得到以下结果:

ID | Row_To_Check
1  |  1
2  |  2

因此,如果 Row_To_Check 列中存在 2,我想返回它 (ID 2) ,否则我想返回 ID 1

有人可以帮忙吗?这让我难住了。

最佳答案

试试这个:

SELECT COALESCE(Row_To_Check, x) AS Row_To_Check
FROM (SELECT 1 AS x UNION ALL SELECT 2) AS t
LEFT JOIN mytable ON Row_To_Check = 2
WHERE (x = 1 AND Row_To_Check IS NULL) OR (x = Row_To_Check)

Demo here

关于MySQL返回精确结果或如果没有精确匹配则返回次要结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35484410/

相关文章:

mysql - 合并为单个查询

php - AJAX:如何使字段的标签和值不同?

php - 将 Id 数组传递给数据库查询 - Codeigniter

mysql - 按一列中的日期和时间以及另一列中的毫秒进行查询过滤

ssh - Mysql 恢复 1GB db 错误 2006 BLOB 文件

php - MySQL MyISAM/InnoDB 更新不是跨两个连接的原子更新(强制写入?)

PHP & MySQL 多个类别中的一项

mysql - 循环 mysql_real_connect 或者什么

php - PhalconPHP数据库加入ORM

java - 使用java从mysql数据库中读取数据