Ben hazırlanmış deyimleri kullanarak optimize etmeye çalışıyorum kez 1000'ler çalıştırılan bir sorgu var:
$query = "SELECT day, ticker, SUM(score*mod) as shares FROM indicators, modifiers WHERE indicators.dex=modifiers.dex AND ticker='$t' GROUP BY day, ticker HAVING shares>=$s";
Ben normalde sorguyu çalıştırdığınızda:
$transactions = $dbm->query($query);
Ben istenen sonuç kümesi olsun.
Ancak, ben bir hazır deyimi haline dönüştürmek zaman
$stmt = $db->prepare("SELECT day, ticker, SUM(score*mod) as shares FROM indicators, modifiers WHERE indicators.dex=modifiers.dex AND ticker=? GROUP BY day, ticker HAVING shares>=?");
ve çalıştırın:
$stmt->execute(array($t, 100));
o HAVING yan tümcesinde belirtilen koşulu filtre edemiyor (yani hisse az 100 sonuç almak) gibi görünüyor.
Bu bir hata / SQLite sınırlama ya da ben yanlış bir şey yapıyorum mi?
Hazırlanan tablolara dönüştürülür zaman bütün diğer sorgular iyi çalışır ...