Meine Variablen sind wie folgt festgelegt:Wie lege ich eine Variable in MySql fest, die während meiner Abfrage nicht zurückgesetzt wird?
SET @start_date = '2015-07-20';
SET @end_date = '2016-06-30';
Meine Frage wie folgt aussieht:
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;
Tabellen 1 und 2 sind beide sehr sehr große Tabellen, so dauert die Abfrage eine sehr lange Zeit zu laufen Das ist für meine Zwecke in Ordnung. Das Problem ist, dass meine Variablen während der Abfrage irgendwie zurückgesetzt werden, so dass die Ergebnisse leer sind. Meine Frage ist, gibt es eine Möglichkeit, die Variablen so festzulegen, dass sie während der Abfragen nicht auslaufen?
Alle Ideen würden wirklich geschätzt werden!
Session-Variablen zurückgesetzt selbst nicht, sollten sie für die gesamte Lebensdauer der Verbindung bestehen bleiben. – Uueerdo
Ich testete mit dem Einstecken der tatsächlichen Daten anstelle der Verwendung von Variablen und es gab Ergebnisse zurück, so etwas passiert mit den Variablen während der Abfrage. Wenn ich SELECT @ start_date ausführen möchte, nachdem die Abfrage eine leere Menge zurückgegeben hat, wird NULL zurückgegeben. – user6655061
Das würde normalerweise anzeigen, dass Ihre Verbindung zurückgesetzt wird; Eine normale SELECT-Anweisung, die den Variablen nicht zugewiesen wird, sollte ihre Werte nicht beeinflussen. Wie führst du die Sätze und Fragen aus? – Uueerdo