Postata in: 'Error: SELECT list is not in GROUP BY clause and contains nonaggregated column'

Giorgio Borelli

Importante sottolineare che eseguendo l'istruzioneSET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));per modificare la variabile sql-mode , questa avrà effetto solo sulla query interessata e la modifica non sarà permanente sull'intero db. Per rendere permanente la modifica alla sql-mode e disabilitare in mod

Pubblica
29-08-2024 10:10:55 +1

Postata in: 'Come cambiare o convertire tabella InnoDB in MyISAM'

Giorgio Borelli

E' bene precisare che puoi cambiare le tabelle da Innodb a Myisam e viceversa con l'istruzione ALTER illustrata, ma non puoi cambiare l'intero store engine di tutto il database con una singola istruzione SQL. Se vuoi cambiare lo store engine di default dell'intero database da innodb a myisam devi farlo a livello di file di configurazione my.cn

Pubblica
27-08-2024 11:31:42 0

Postata in: 'Differenza tra tabelle MyISAM e InnoDB, qual'è più veloce?'

Giorgio Borelli

E' vero che le tabelle MyIsam in generale sono più veloci di quelle InnoDB, ma la scelta di una tipologia di tabella piuttosto che di un'altra, deve essere determinata dal tipo di applicativo da andare a realizzare, il quale comporterà conseguentemente la mole di dati, la loro gestione ed interrogazione sul database; e sulla base di q

Pubblica
24-08-2024 11:36:57 0

Postata in: 'Error: Duplicate entry '0' for key 'PRIMARY''

Giorgio Borelli

Per definire un campo ID "chiave primaria" come valore AUTO INCREMENTALE, bisogna modifica la tabella con la seguente istruzione sql: ALTER TABLE `my_table_name` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=1;COMMIT; Specificando AUTO_INCREMENT=1 stiamo dicendo al motore del database di partire dal valore numerico 1 per l'

Pubblica
22-08-2024 16:18:11 0

Postata in: 'Come cambiare il max allowed packet size in mysql o mariadb'

Giorgio Borelli

Potete cambiare le dimensioni dei pacchetti/query inviabili per max_allowed_packet anche via codice (ad es. in php), come spiegato in questo post: MySql server has gone away. Ammesso sempre che abbiate i permessi utente a livello di database per farlo, ed in ogni caso al riavvio del server MySql vi ritrovereste nuovamente limitati alle dimensi

Pubblica
05-07-2024 11:53:01 +2

Postata in: 'Come Fare un UPDATE tramite i valori SELECT di un'altra tabella'

Giorgio Borelli

Il miglior modo per fare un UPDATE prelevando i valori da una SELECT su un'altra tabella è questo:UPDATE Table1 AS T1, (SELECT * FROM Table2 WHERE cond) AS T2 SET T1.col1 = T2.col_a, T1.col2 = T2.col_b, T1.col3 = T2.col_cDove T1 e T2 ovviamente rappresentano degli ALIAS delle tue tabelle, puoi anche aggiungere anche una condizione WHERE alla

Pubblica
07-03-2020 18:07:27 -1

Postata in: 'SQL : Update campo3 condizionale a campo1 e campo 2 ciclati'

Giorgio Borelli

Se usi VB.NET allora molto probabilmente stai parlando di Microsoft Sql Server come data source, giusto? Piuttosto che verificare la presenza del codice figlio tramite codice VB, perché non provi a lanciare una T-SQL query che ne verifichi la presenza con una condizione verificata ad hoc e ne setti eventualmente il valore 1 o 0 direttamente

Pubblica
10-09-2019 19:03:11 0

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

Giorgio Borelli

Aggiungo a quanto già risposto che probabilmente tu abbia implementato anche una relazione 1 a n tra la tabella che rappresenta il post del blog ed i commenti ad esso associati, sarebbe più opportuno scrivere una query che sfrutti tale relazione tramite un semplice JOIN, oppure ancora più banalmente passare l'id (identificativo

Pubblica
29-04-2019 16:25:43 0

Postata in: 'Clausola ORDER BY su più campi'

Giorgio Borelli

In MySql sto cercando di fare una query che mi ordini i records ritornati dalla mia SELECT con ORDER BY secondo più valori dei campi, e non per un solo campo, ad es. prima deve darmi quelli con il valore numerico di un campo più alto, e poi a parità di valore me li deve ordinare per nome, come posso fare?

Pubblica
04-04-2019 16:44:38 +2

Postata in: 'Aggiungere un record con un certo valore solo se non esiste in tabella'

Giorgio Borelli

Per inserire un record in una tabella mysql solo se questo non è presente sulla tua chiave primaria, puoi usare la INSERT IGNORE, in questo modo:mysql> INSERT IGNORE INTO your_table (col_one, col_two) VALUES(13,'abcde');Query OK, 0 rows affected (0.00 sec)se ad es. la tua chiave primaria è composta da campi 'col_one' e 'col_two' ed

Pubblica
02-04-2019 16:10:39 0

Postata in: 'Ottenere l'ultimo ID del record (riga) inserito in una tabella MySql con PHP'

Giorgio Borelli

Per ottenere l'ultimo ID inserito in MySql, puoi farlo o direttamente con una SELECT o via codice se stai operando PHP con la funzione apposita mysql_insert_id();Vediamo per primo come potresti farlo con la select:SELECT id FROM MyTable ORDER BY id DESC LIMIT 1la query è abbastanza intuitiva, chiedi di avere il resultset del campo id da

Pubblica
19-12-2018 16:25:15 +2

Postata in: 'Come si utilizza la clausola GROUP BY in una SELECT?'

Giorgio Borelli

La clausola GROUP BY è una funzione di aggregazione, ovvero in una query SELECT serve per raggruppare records aventi gli stessi valori per uno o più campi (colonne). Viene usata ponendola alla fine di una SELECT e specificando il nome del campo per il quale si vogliono raggruppare i valori, rifacendoci all'esempio di una libreria

Pubblica
18-12-2018 11:56:31 0

Postata in: 'Come si utilizza la clausola DISTINCT in una SELECT?'

Giorgio Borelli

La clausola DISTINCT viene utilizzata in combinazione con la SELECT, e ne modifica il comportamento dei records ritornati, escludendone i doppioni in base al valore del campo (colonna) specificata.E più facile a spiegarsi con un esempio che a dirlo, supponiamo di avere in MySql una tabella 'books' definita per gestire un negozio di libri, pe

Pubblica
17-12-2018 19:15:36 0

Postata in: 'Determinare la versione di MySql installata?'

Giorgio Borelli

Determinare quale versione di MySql è installata è davvero molto semplice, basta lanciare la seguente query sql:SELECT version();tutto qua, non serve altro.

Pubblica
15-12-2018 16:19:20 0

Postata in: 'Come cancellare una tabella MySql?'

Giorgio Borelli

Attenzione che con la query DROP TABLE la tabella mysql viene eliminata definitivamente e non sarà più possibile recuperarne i dati.

Pubblica
10-12-2018 18:19:47 0

Postata in: 'Inserire un record nella tabella MySql solo se non esiste già'

Giorgio Borelli

Per inserire un record o un valore 'primario' solo nel caso in esso non esista già nella tabella hai due strade:Usare l'istruzione sql INSERT IGNORE ...Usare l'istruzione sql INSERT ... ON DUPLICATE KEY UPDATE ...Quindi, facendo leva su una chiave primaria (PRIMARY KEY) o su un INDICE UNICO (UNIQUE INDEX) il motore di MySql verifica che per

Pubblica
10-12-2018 17:38:14 +1

Postata in: 'Connettersi a due database contemporaneamente tramite PHP'

Giorgio Borelli

Puoi connetterti a due database dalla stessa istanza MySql ti consiglio di farlo gestendo due connessioni differenti tramite la 'mysql_connect()', ed ovviamente stiamo parlando che esso (MySql) risieda sullo stesso server (host indicato in $db_host).Ti riporto un veloce script PHP per farti capire cosa intendo: $db_conn1 = mysql_connect($db_ho

Pubblica
09-12-2018 09:24:40 0

Postata in: 'Come memorizzare qualsiasi carattere in MySql?'

Giorgio Borelli

Questo è un problema di codifica di caratteri, certi caratteri non possono essere rappresentati da alcuni tipi di charsets semplicemente perché non ci entrano, ad es. la vecchia tabella ASCII (esteso) può contenere massimo 256 caratteri, quindi tutti gli altri caratteri che non ricadono in questo insieme vengono erroneamente me

Pubblica
07-12-2018 19:10:26 0

Postata in: 'Come modificare una colonna MySql per consentire valori NULL?'

Giorgio Borelli

La sintassi sql corretta per modificare la colonna della tabella MySql e consentire anche l'inserimento di valori NULL è:ALTER TABLE 'MyTable' MODIFY 'MyColumn' varchar(255) NULL;avevi dimenticato ad inserire 'TABLE' dopo 'ALTER' nella query.Se invece vuoi anche che il valore NULL sia quello di default devi scrivere:ALTER TABLE 'MyTable' MOD

Pubblica
06-12-2018 19:04:18 +2