我正在尝试编写一个查询,如果找不到第一个行,它将选择另一行,即如果找不到指定的行,则获取“默认”。
与此类似的东西:
SELECT
*
FROM
teams
WHERE
team=:team_id
ELSE
WHERE team=1
这可以在Mysql中做到吗?
顺便说一句,默认值可能不仅仅是 1。
假设:team_id
比1
你能做的更大
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
SELECT * FROM teams WHERE team=:team_id
UNION ALL
SELECT * FROM teams WHERE team=1
ORDER BY team=1
LIMIT 1
再次查看我的问题后,我认为可能比我最初想的更容易做到。
以下方法不起作用吗?:
SELECT
*
FROM
teams
WHERE
team=:team OR (team!=:team AND team=:default_team)