0

条件が true の場合はデータのセットを取得し、条件が false の場合は他のデータのセットを取得する必要があります。

mysql マニュアルで検索し、select case when ステートメントをテストしましたが、サブクエリが複数の行を返すため、使用できません。

if文でクエリを書くのは簡単ですか? (ストアド プロシージャを使用しない場合)

これが私の状態です:

select case when ( right(from_unixtime(300 * floor(unix_timestamp(now())/300)) - INTERVAL 10 MINUTE, 8) = '23:50:00' ) then ( select SERVER_KEY from OVERSERVER ) else ( select SERVER_KEY from SERVER  ) end;

ありがとう

4

2 に答える 2

2

このようなことを試してください:

select SERVER_KEY from OVERSERVER
where right(from_unixtime(300 * floor(unix_timestamp(now())/300)) - INTERVAL 10 MINUTE, 8) = '23:50:00'
union all
select SERVER_KEY from SERVER
where right(from_unixtime(300 * floor(unix_timestamp(now())/300)) - INTERVAL 10 MINUTE, 8) != '23:50:00'
于 2013-11-05T08:12:54.403 に答える
0

よくわかりませんが、これを試してみてください-

select SERVER_KEY from (case when ( right(from_unixtime(300 * floor(unix_timestamp(now())/300)) - INTERVAL 10 MINUTE, 8) = '23:50:00' ) then "OVERSERVER" else "SERVER"

また

select SERVER_KEY from (case when ( right(from_unixtime(300 * floor(unix_timestamp(now())/300)) - INTERVAL 10 MINUTE, 8) = '23:50:00' ) then OVERSERVER else SERVER

注: 上記のクエリはテストされていません。

于 2013-11-05T08:14:50.453 に答える