1

最初の行が見つからない場合に別の行を選択するクエリを作成しようとしています。つまり、指定された行が見つからない場合は「デフォルト」を取得します。

これに似たもの:

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

Mysqlでこれを行うことは可能ですか?

ところで、デフォルトは 1 だけではありません。

4

3 に答える 3

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
于 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 に答える