最初の行が見つからない場合に別の行を選択するクエリを作成しようとしています。つまり、指定された行が見つからない場合は「デフォルト」を取得します。
これに似たもの:
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)