Postata in: 'Differenza tra NOW() vs CURDATE()'

Michele Brughese

Non è un discorso di qual'è migliore tra le due funzioni NOW() o CURDATE(), entrambe servono per recuperare le date in un database MySql, e mentre la prima, la NOW ritorna un DATETIME (date + time) la seconda ovvero la CURDATE ritorna un DATE (date). Se provi a fare una SELECT in MySql invocando queste funzioni ti accorgerai dell

Pubblica
20-03-2020 17:05:29 +1

Postata in: 'Aggiornare i campi di una tabella mysql tramite subquery da un'altra tabella'

Michele Brughese

Se vuoi aggiornare i campi di una prima tabella, anziché usare una subquery per selezionare i valori da una seconda tabella, potresti usare direttamente un JOIN tra le tabelle, in questo modo:UPDATE table1 t1 JOIN table2 t2 ON t1.id=t2.id SET t1.name=t2.name;anche questa è una query sql molto pulita e veloce per fare un UPDATE dei cam

Pubblica
13-03-2020 10:32:22 0

Postata in: 'Concatenare stringhe MySql'

Michele Brughese

In MySql il tipo string viene rappresentato dai tipi: CHAR, VARCHAR e TEXT (con i suoi sottotipi). Come in tutti i linguaggi sql (e non) le stringhe rivestono un ruolo fondamentale per la trattazione dei dati, e come giustamente sottolinei tu, poterle trattare direttamente a livello di database è una ottimizzazione a livello di performance d

Pubblica
12-03-2020 10:09:54 +1

Postata in: 'Dimensione massima VARCHAR in MySql?'

Michele Brughese

La rappresentazione interna di una tabella MySQL ha un limite di dimensione massima di riga (row) di 65,535 bytes (65Kb), a questi devi escludere i tipi BLOB e TEXT poiché le colonne definite con questi tipi particolari occupano dai 9 ai 12 bytes, perchè il loro contenuto (data) sono memorizzate separatamente dal resto delle altre rig

Pubblica
10-09-2019 18:49:54 +1

Postata in: 'Errore: SELECT list is not in GROUP BY clause and contains nonaggregated column - fix'

Michele Brughese

Puoi disabilitare l'impostazione only_full_group_by eseguendo le seguenti impostazioni:mysql> set global sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';mysql> set session sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_A

Pubblica
09-09-2019 14:15:21 0

Postata in: 'Cambiare la root password in MySql'

Michele Brughese

Prova con questo:UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';FLUSH PRIVILEGES;

Pubblica
08-05-2019 12:46:15 0

Postata in: 'Elencare le tabelle non vuote di un database'

Michele Brughese

Se vuoi elencare le tabelle non vuote per un certo database, lancia la seguente query:SELECT * FROM `TABLES` WHERE `TABLE_ROWS` > 0 AND `TABLE_SCHEMA` = 'database_name'

Pubblica
05-05-2019 15:41:16 0

Postata in: 'Come misurare queries per second (QPS)?'

Michele Brughese

Un modo per misurare l'efficienza delle queries sql, potrebbe essere quella di creare un job che venga richiamato in maniera candenzata ed esegua il comando:SHOW STATUSPoi con uno script si potrebbe calcolare la differenza tra le chiamate successive a SHOW STATUS e dividerle per il numero di secondi tra le misurazioni per ottenere le query al secon

Pubblica
03-05-2019 10:52:50 0

Postata in: 'Cancellare tutte le tabelle di un database mysql'

Michele Brughese

Puoi eseguire la query DROP database, questa cancellerà (drops) tutte le tabelle in esso presenti; attenzione però che detto statement cancella in maniera permanente anche il database, quindi se il tuo intento è solo quello di 'svuotarlo' delle sue tabelle, devi ricreare il database subito dopo. La sintassi esatta è

Pubblica
02-05-2019 11:45:43 0

Postata in: 'Come scrivere una query sql che restituisca solo gli ultimi 10 records'

Michele Brughese

Supponendo che la tabella si chiami Comments, la query che cerchi di eseguire è molto semplice, per ritornare solo gli ultimi 10 records di una tabella, in MySql ti basta usare l'operatore LIMIT in questo modo:SELECT * FROM Comments ORDER BY date DESC LIMIT 10e li ordini con ORDER BY per il campo date in maniera decrescente (DESC), semplice

Pubblica
29-04-2019 16:16:50 0

Postata in: 'Come usare mysqli_real_escape_string()?'

Michele Brughese

Penso che una soluzione più semplice sia settare a runtime il file php.ini con magic quotes a zero 0 (falso, disabilitato) nel tuo script, basta scrivere:ini_set('magic_quotes_runtime', '0');è bene precisare che la magic_quotes_gpc è una direttiva separata che si applica solo agli array globali GET / POST / COOKIE.La funzione i

Pubblica
08-04-2019 22:30:30 0

Postata in: 'Campo int non tronca valore più lungo di N'

Michele Brughese

N in INT(N), che indica la lunghezza di visualizzazione del campo e non la sua dimensione; questo è stato molto fuorviante per tantissimi utenti, a causa di questa sintassi praticamente uguale a quella con VARCHAR(N), viene (a ragione) spesso frainteso. La dimensione di un INT in MySql è di 4 byte, e specificarne la lunghezza &eg

Pubblica
01-04-2019 12:52:00 0

Postata in: 'Settare il numero max di righe in una tabella'

Michele Brughese

Che io sappia non c'è un modo di default per settare la tabella MySql ad accettare un numero massimo di records, potresti impostare un trigger che all'evento 'INSERT' verifichi se il record o i records inseriti siano maggiori di N, ed in quel caso prima di eseguire la query d'inserimento andrebbe a cancellare i records più vecchi in e

Pubblica
14-12-2018 17:03:52 +1

Postata in: 'Verificare se un indice esiste su un campo di una tabella'

Michele Brughese

L'utente chiede di verificare o mostare l'indice su un determinato campo della sua tabella MySql, quindi sarebbe più opportuno scrivere così:SHOW INDEX FROM tua_tabella WHERE tua_tabella.tua_colonna='nome_colonna';

Pubblica
12-07-2018 12:28:38 0

Postata in: 'Come prevenire attacchi SQL-Injection in LAMP?'

Michele Brughese

Indipendentemente da LAMP (Linux Apache MySql PHP) il modo migliore per trattare l'input di dati prima che questi vengano scritti sul database e pertanto essere potenzialmente dannosi se contengono codice sql malevolo, è quello di adoperare le PDO (PHP Data Object), una libreria che t'interfaccia col database MySql (e non solo) consentendoti

Pubblica
07-06-2018 13:08:16 0