Mysql
 sql >> Database >  >> RDS >> Mysql

MariaDb non supporta la funzione ANY_VALUE()

Per oggi hai risolto il problema. Ma domani, quando eseguirai la stessa query, riceverai un errore diverso.

Nelle versioni precedenti di MySQL o MariaDB, avresti ottenuto "qualsiasi valore" per price_available quando non GROUPing BY esso. Era effettivamente una via di mezzo tra "cattiva pratica" e "violazione degli standard". Relativamente di recente, MariaDB, poi MySQL, è passato a "solo gruppo completo per". In quel momento, ANY_VALUE() è nato per MySQL, ma a quanto pare MariaDB ha lasciato cadere la palla.

La vecchia soluzione alternativa, che dovrebbe essere sicura sia per la vecchia che per la nuova versione, consiste nell'usare MIN(price_available) o qualche altra funzione aggregata. (Se la colonna potrebbe avere NULL , i vari aggregati potrebbero o meno gestire NULL nel modo che preferisci.)

Vedi anche il ONLY_FULL_GROUP_BY impostazione.