2011-08-22 52 views
1

我需要添加每个记录中存在的字符数。添加记录中的字符数(mysql)

SELECT 
CHAR_LENGTH(fiedl1) + 
CHAR_LENGTH(fiedl2) + 
CHAR_LENGTH(fiedl3) + 
CHAR_LENGTH(fiedl4) + 
CHAR_LENGTH(fiedl5) + 
CHAR_LENGTH(fiedl6) 
FROM mytable; 

上面的代码是无效的,因为如果一个字段包含NULL值,则它返回NULL。

回答

2

可以使用IFNULL控制流功能。

IFNULL(expr1,expr2) 

如果expr1不是NULL,IFNULL()返回表达式1;否则它返回expr2。 IFNULL()返回一个数字或字符串值,具体取决于使用它的上下文。

您的查询应该是这样的:

SELECT 
IFNULL(CHAR_LENGTH(fiedl1), 0) + 
IFNULL(CHAR_LENGTH(fiedl2), 0) + 
IFNULL(CHAR_LENGTH(fiedl3), 0) + 
IFNULL(CHAR_LENGTH(fiedl4), 0) + 
IFNULL(CHAR_LENGTH(fiedl5), 0) + 
IFNULL(CHAR_LENGTH(fiedl6), 0) 
FROM mytable; 

让我知道如果您有任何疑问。

1

尝试使用IFNULL,就像这样:

IFNULL(CHAR_LENGTH(fiedl1), 0) ...