MySQLの並び順に関して質問です。以下の様なデータがあるとします。

データ1
id,name,flag
1,鈴木,0
2,佐藤,1
3,佐々木,0
4,藤木,0

データ2
id,name,flag
1,鈴木,0
2,佐藤,0
3,佐々木,0
4,藤木,1

上記データをFIELD関数以外で以下の様に並び替えてSELECTする方法はありますでしょうか?

データ1
id,name,flag
2,佐藤,1
3,佐々木,0
4,藤木,0
1,鈴木,0

データ2
id,name,flag
4,藤木,1
1,鈴木,0
2,佐藤,0
3,佐々木,0

以上、宜しくお願い致します。

追加コメント
flagが1なのは必ず1レコードのみ。
レコードの順番は必ず、idが1であれば、次のレコードが1、前のレコードがidの最大値になります。