2017-03-25 14 views
0

0行を返す代わりに、すべてのフィールドに空の値を持つ空の行を返すクエリがあります。私はMinが問題だと思う、一度それを取り除くと、0行を返す。クエリの結果を変更せずにどのように修正できますか?空の行が返されるクエリ

select *,min(STR_TO_DATE(concat(slot_date, ' ' , sec_to_time(from_time)), '%Y-%m-%d %H:%i')) next_available_slot 
from appt_available_slots 
where country_id = 1 
and city_id = 1 
and spec_id= 1 
and company_id = ifnull (NULLIF(2, 0), company_id) 
and slot_date ='2017-04-02' 
order by from_time ; 
+0

あなたのクエリで何を達成しようとしていますか?なぜあなたは 'min()'部分を必要としますか? –

+0

@GiorgosAltanisは、次に利用可能な時刻、最も近い時刻と日付を取得します – dotfreelancer

+0

「次の利用可能な時間」はどのように指定しますか?とにかく、あなたが問題を失ったと思うなら、私に説明してもらうのは気にしないでください:-) –

答えて

0

単一の行を取得するには、SELECTリストにMIN()を入れないで、LIMIT 1を使用する必要があります。

select *, STR_TO_DATE(concat(slot_date, ' ' , sec_to_time(from_time)), '%Y-%m-%d %H:%i') next_available_slot 
from appt_available_slots 
where country_id = 1 
and city_id = 1 
and spec_id= 1 
and company_id = ifnull (NULLIF(2, 0), company_id) 
and slot_date ='2017-04-02' 
order by from_time 
limit 1 
+0

このようにして、データが見つかると1行ではなく多くの行が返されますhttp://i.imgur.com/yLRlWPs .png – dotfreelancer

+0

この部分は多くの行を返します。http://i.imgur.com/mfLChz6.png – dotfreelancer

+0

1行だけが必要な場合は、 'LIMIT 1'を使います。 – Barmar

関連する問題