Talvolta si fa un uso eccessivo di PHP anche quando basterebbero gli strumenti messi a disposizione dal linguaggio SQL.
Un esempio è quando si vogliono contare le occorrenze di un determinato valore all’interno delle diverse righe di un campo.
Con PHP siamo abituati a creare un contatore ed a stampare la variabile ma possiamo fare tutto con SQL.
Riprendo l’esempio che ho trovato sul web
person vote obama yes mccain no obama yes obama no mccain yes obama yes obama yes obama no mccain no
Il codice SQL che compie il lavoro è
SELECT person,
SUM(IF(vote = "yes", 1,0)) AS `yes_votes`,
SUM(IF(vote = "no", 1,0)) AS `no_votes`,
COUNT(vote) AS `total`
FROM votes
GROUP BY person
ORDER BY yes_votes DESC
Il risultato è
person yes_votes no_votes total obama 4 2 6 mccain 1 2 3
La parte comoda del codice SQL risiede in quel ..SUM(IF.. che ci evita di creare un loop in PHP a valle della query per il conteggio.
via Random Snippets