sql >> Database >  >> RDS >> Mysql

Mysql:Het is niet toegestaan ​​om een ​​resultaatset van een functie te retourneren

U wilt het resultaat van een query toewijzen aan een variabele, maar in feite bent u gewoon select ing. Daarom klaagt MySQL.

Je moet dit veranderen

            SELECT  p_KeyValue = ListName + '.' + Value
            FROM ListsTable
            WHERE EntryID = p_ParentID  LIMIT 1 ;

naar

            SELECT CONCAT(ListName, '.', `Value`)
            INTO p_KeyValue
            FROM ListsTable
            WHERE EntryID = p_ParentID  LIMIT 1 ;

En je moet een ORDER BY . toevoegen . Een LIMIT zonder ORDER BY slaat nergens op, aangezien er geen gegarandeerde volgorde is in een relationele database.



  1. Veldnamen ophalen uit tijdelijke tabel (SQL Server 2008)

  2. Inner join met like-clausule

  3. Sphinx vs. MySql - Doorzoek de lijst met vrienden (efficiëntie/snelheid)

  4. Maak een tabel in SQL Server 2017