0
我的變量被設置是這樣的:如何在MySql中設置一個變量,以便在查詢期間不會重置?
SET @start_date = '2015-07-20';
SET @end_date = '2016-06-30';
我的查詢看起來是這樣的:
SELECT a.user_id, a.school_id, COUNT(a.log_id) logs
FROM table1 a
JOIN tbl2 b ON a.log_id = b.log_id
JOIN users u ON a.user_id = u.user_id
WHERE DATE(log_date) BETWEEN @start_date AND @end_date
AND b.column2 = 123
GROUP BY a.user_id, b.school_id;
表1和表2個都非常非常大的表,所以查詢需要很長的時間來運行,這對我的目的來說很好。問題是我的變量在查詢過程中以某種方式被重置,所以結果會變回空。我的問題是,有沒有辦法設置變量,以便在查詢期間不會超時?
任何想法真的很感激!
Session變量不重置自己,他們應該持續連接的壽命。 – Uueerdo
我測試了插入實際日期而不是使用變量,並返回了結果,所以在查詢過程中變量發生了變化。如果我在查詢返回空集後嘗試運行SELECT @start_date,它將返回NULL。 – user6655061
這通常表示您的連接正在重置;一個沒有分配給變量的普通'SELECT'不應該影響它們的值。你如何執行集合和查詢? – Uueerdo