1

我正在尝试编写一个查询,如果找不到第一个行,它将选择另一行,即如果找不到指定的行,则获取“默认”。

与此类似的东西:

SELECT
*
FROM
teams
WHERE
team=:team_id
ELSE
WHERE team=1

这可以在Mysql中做到吗?

顺便说一句,默认值可能不仅仅是 1。

4

3 回答 3

2

假设:team_id1你能做的更大

select * from teams where team=1 or team=:team_id order by team desc limit 1

或者如果您不知道两个 id 的顺序:

select * from teams where team=1 or team=:team_id order by team=:team_id desc limit 1
于 2013-03-23T09:38:04.170 回答
2
SELECT * FROM teams WHERE team=:team_id
UNION ALL
SELECT * FROM teams WHERE team=1
ORDER BY team=1
LIMIT 1
于 2013-03-23T09:54:28.887 回答
0

再次查看我的问题后,我认为可能比我最初想的更容易做到。

以下方法不起作用吗?:

SELECT
*
FROM
teams
WHERE
team=:team OR (team!=:team AND team=:default_team)
于 2013-03-23T10:12:50.783 回答