MySQL插入CASE WHEN / THEN / ELSE

时间:2013-11-28 01:40:01

标签: mysql sql

我',尝试插入带有case语句的表。但它根本不起作用。我对这个问题很困惑。这是我的疑问。

INTO  T_Person_Phone(ID_Person, Number_Phone_Person, Piority_Phone_Person)
VALUES  ( 255893E0 ,6474748,CASE When 1 = 1  Then 'Default' END)

如果我设置值1,则显示默认值。我的查询有问题吗?

谁能帮助我?

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)。