MySQL无法计算字符串值

w6lpcovy  于 2023-06-28  发布在  Mysql
关注(0)|答案(1)|浏览(107)

我运行在缺乏理解为什么一个字段值(varchar)包含一个表的文本不能在存储过程中评估。

set @Language=(Select Language from tblcustomer where cid=123);
If @Language='english' then
    set @salutation='Ladies and gentlemen,';
else
    set @salutation='Sehr geehrte Damen und Herren!';
end if;

结果总是第二个选择。
如果我测试它,select对@Language显示NULL

SELECT   @Language, Language from tblcustomer where cid=123;
result=  NULL, english

当我

DECLARE xxLanguage varchar(20);
set xxLanguage=(Select Language from tblcustomer where cid=123);

 SELECT xxLanguage, Language from tblcustomer where cid=123;
       NULL, english

但是做这个

set @Language=(SELECT IFNULL((SELECT 1 from tblcustomer where cid=123 and Language ='english'),0);

给出正确的值1。但我不能再继续正确的如果..最终结果。

If @Language=1 then
        set @salutation='Ladies and gentlemen,';
    else
        set @salutation='Sehr geehrte Damen und Herren!';
    end if;

给出了第二个(不正确的)选项('Sehr geehrte Damen und Herren!').
你知道出什么事了吗谢谢

6rqinv9w

6rqinv9w1#

尝试set @salutation=If (@Language='english', 'Ladies and gentlemen,', 'Sehr geehrte Damen und Herren!');https://dbfiddle.uk/nY6vjYLP

相关问题