Sütun diğer adları WHERE yan tümcesinde değerlendirilebilir?

2 Cevap php

Öncelikle, ben MySQL sorguları ile bir uzman değilim, ve benim soruna bir çözüm bulmak için görünmüyor olabilir.

Örnek:

SELECT SUM(IF(table1.col1<4,1,0)) AS score WHERE score>0 GROUP BY table1.col2

Sütun puan tablo1 de yok gibi yukarıda bir hata verecekti.

Bu benim geçici çözüm:

SELECT SUM(IF(table1.col1<4,1,0)) AS score GROUP BY table1.col2

Sonra PHP her satırı kontrol

if($row['score']>0){...

Ben ideal ben sorgu içinde bu satırları görmezden gerekir, ben ihtiyacım olmayacak biliyorum satırları döngü kulüpler gibi bir performans sorunu vardır.

Benim anlayış WHERE tablonun her satırı, değil gruplandırılmış satır için tetiklenir olmasıdır.

Bunu yapmak için bir yolu var mı?

2 Cevap

Bunu böylece Having, sütun diğer adları destekler:

SELECT SUM(IF(table1.col1<4,1,0)) AS score
GROUP BY table1.col2
HAVING score > 0

Eğer col1

SELECT COUNT(table1.col1) AS score
 WHERE table1.col1 < 4
GROUP BY table1.col2
HAVING score > 0

Satırlar GROUP BY yan tümcesinde göre gruplandırılmış önce WHERE yan tümcesi değerlendirilir; dolayısıyla sizin sözdizimi değildir, sadece bir sorun var: score sütun, bu bağlamda sadece anlamsız. Gruplar değerlendirildikten sonra sadece bilgisayarlı olabilir, dolayısıyla çözüm kesinlikle yaşıyor.