我正在尝试编写一个查询,如果找不到第一行,将选择另一行,如果找不到指定的那个,则抓取'default'。
类似的东西:
SELECT
*
FROM
teams
WHERE
team=:team_id
ELSE
WHERE team=1
这可以在Mysql中完成吗?
顺便说一句,默认情况可能不仅仅是1。
答案 0 :(得分:2)
假设: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
答案 1 :(得分:2)
SELECT * FROM teams WHERE team=:team_id
UNION ALL
SELECT * FROM teams WHERE team=1
ORDER BY team=1
LIMIT 1
答案 2 :(得分:0)
再次看了我的问题,我想也许我最初想的更容易。
以下不起作用吗?:
SELECT
*
FROM
teams
WHERE
team=:team OR (team!=:team AND team=:default_team)