sql >> Database >  >> RDS >> Mysql

Lokale MySQL-variabelen

MySQL heeft twee verschillende soorten variabelen:

  • lokale variabelen (die niet zijn voorafgegaan door @ ) zijn sterk getypt en beperkt tot het opgeslagen programmablok waarin ze zijn gedeclareerd. Merk op dat, zoals gedocumenteerd onder DECLARE Syntaxis :

  • gebruikersvariabelen (die zijn voorafgegaan door @ ) zijn losjes getypt en binnen het bereik van de sessie. Houd er rekening mee dat ze niet hoeven te worden aangegeven en ook niet kunnen worden aangegeven - gebruik ze gewoon rechtstreeks.

Daarom, als u een opgeslagen programma definieert en daadwerkelijk een "lokale variabele" wilt, zoals in uw vraag staat, moet u de @ weglaten teken en zorg ervoor dat uw DECLARE statement staat aan het begin van je programmablok. Anders, om een ​​"gebruikersvariabele" te gebruiken, laat u de DECLARE . vallen verklaring.

Bovendien moet u ofwel uw zoekopdracht tussen haakjes plaatsen om deze als subquery uit te voeren:

SET @countTotal = (SELECT COUNT(*) FROM nGrams);

Of u kunt SELECT ... INTO :

SELECT COUNT(*) INTO @countTotal FROM nGrams;


  1. Vagrant port forwarding voor Mysql

  2. Mysql-tabelgrootte op de HDD

  3. Kan het sorteerconflict tussen SQL_Latin1_General_CP1_CI_AS en Latin1_General_CI_AS niet oplossen in de gelijk aan-bewerking

  4. Carreturns verwijderen in Mysql DB