我',尝试插入带有case语句的表。但它根本不起作用。我对这个问题很困惑。这是我的疑问。
INTO T_Person_Phone(ID_Person, Number_Phone_Person, Piority_Phone_Person)
VALUES ( 255893E0 ,6474748,CASE When 1 = 1 Then 'Default' END)
如果我设置值1,则显示默认值。我的查询有问题吗?
谁能帮助我?答案 0 :(得分:0)
在MySQL中,当你想连接字符串时,会使用CONCAT()
。
CASE When 1 = 1 Then 'Default' ELSE CONCAT('Piority', Priority) END
'A'+'B'表示数字求和。 'A'转换为0,'B'转换为0'所以,'A'+'B'= 0。
mysql> select 'A' + 'B';
+-----------+
| 'A' + 'B' |
+-----------+
| 0 |
+-----------+
BTW,Priority
来自哪里?。
优先权只是我的决定然后,我想,“'piority'+ 2 = 2”
你的CASE
返回字符串。
mysql> select CASE When 1 = 1 Then 'Default' END;
+-------------------------------------+
| CASE When 1 = 1 Then 'Default' END |
+-------------------------------------+
| Default |
+-------------------------------------+
和Piority_Phone_Person
是TINYINT。 tinyint无法存储字符串。我建议你将Piority_Phone_Person
转换为VARCHAR(255)。