giovedì 3 febbraio 2011

Mysql: query record relativi a ieri e oggi

Per estrarre i record della tabella 'table' in cui il campo 'time_field' contenga una data compresa tra ieri e oggi, usare la query seguente:
SELECT * FROM table WHERE time_field >= DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY)

Mysql: aggiungere il numero di record progressivo estratto da una query

Se abbiamo una query del tipo:

SELECT nome,cognome FROM utenti WHERE nome = 'Pippo'
Il cui risultato sara':

+-----+-------+
|nome |cognome|
+-----+-------+
|Pippo|xxxxx  |
+-----+-------+
|Pippo|YYYYY  |
+-----+-------+
2 rows in set (0.01 sec)


E desideriamo che ogni record sia preceduto dal numero progressivo di estrazione, come nell'esempio seguente:


+------+-----+-------+
|numero|nome |cognome|
+------+-----+-------+
|     1|Pippo|xxxxx  |
+------+-----+-------+
|     2|Pippo|YYYYY  |
+------+-----+-------+
2 rows in set (0.01 sec)


Dobbiamo prima eseguire una query per assegnare 0 ad una variabile (contatore) globale:
set @N = 0;
Il cui output sara':
Query OK, 0 rows affected (0.27 sec)

Seguita dalla query originale, aggiornata per l'utilizzo del contatore:
SELECT @N := @N +1 AS numero,nome,cognome FROM utenti WHERE nome = 'Pippo'

ATTENZIONE: ricordarsi di azzerare la variabile contatore prima di ogni query.

PHP: disabilitare (temporaneamente) i warning generati da uno script

Ci sono due possibilita:

  1. Inserire la riga seguente nel file di configurazione php.ini:
    display_errors = 0
  2. Inserire a inizio script la clausola:
    ini_set( "display_errors", 0);

Mysql: gestione degli arrotondamenti

A questo indirizzo trovate una presentazione delle funzioni matematiche di MySQL con una serie di interessanti commenti riguardanti le problematiche che si incontrano utilizzando le funzioni di arrotondamento:

http://dev.mysql.com/doc/refman/5.1/en/mathematical-functions.html