sql >> Databasteknik >  >> RDS >> Mysql

Mysql CASE HITTER INTE för CASE STATEMENT på en lagrad procedur

Detta är ett MySQL-specifikt problem.
I MySQL måste ett fall alltid ha en giltig matchning, alltså en ELSE-klausul.
Och eftersom uttalandet efter matchningen inte kan vara tomt kan du fylla i det med en tomt block som så:

ELSE BEGIN END;

Så ett giltigt fall skulle till exempel vara:

CASE @news  
  WHEN 'emp' THEN  
    UPDATE equipos SET pe=pe+1,pg=pg-1 WHERE [email protected];  
  WHEN 'loc' THEN  
    UPDATE equipos SET pp=pp-1,pg=pg+1 WHERE [email protected];  
  ELSE BEGIN END;  
END CASE;


  1. Är mysql_real_escape_string() och mysql_escape_string() tillräckliga för appsäkerhet?

  2. MySQL REPLACE variabel sträng

  3. Problem med frågedata i en tabell

  4. Hur kan jag hitta alla tabeller i MySQL med specifika kolumnnamn i dem?