MYSQL IFNull正确用法

时间:2013-03-02 18:56:31

标签: mysql ifnull

这只是一个简单的问题,但在制作表的更新程序时,例如Personinfo是可以接受的

Update Person
 Set 
   FirstName = IFNULL(_FirstName, FirstName),
   LastName = IFNULL(_LastName, LastName)
  Where PID = _PID

这对于对记录进行部分更新或者是否应该发回所有信息都是可取的?

1 个答案:

答案 0 :(得分:0)

如果exp1不为空,则IFNULL将返回exp2。

如果未设置传递给存储过程的参数,我假设您要返回固定字符串'First Name'和'Last Name'。我通过性能表示你也在谈论更新/选择和数据碎片的速度。

你需要问自己,无论是出于应用原因你想要NULL还是固定字符串而不是担心性能(除非你已经遇到了与此相关的性能问题)。

这确实会影响性能但是如果行大小超过限制,它应该只会引发问题 - 表的内部表示最大行大小为65,535字节。如果你不会超过那个,那么固定字符串和NULL之间的性能差异是不值得考虑的。

您也可以选择CHAR类型,因为它始终具有相同的长度,并且不会导致任何碎片。但是你应该存储一个空值而不是NULL。