所有列的mySQL长度

时间:2012-11-16 07:54:17

标签: mysql multiple-columns

我经常有类似的SQL语句

SELECT LENGTH(col_name) FROM `table` WHERE *condition*

确定mySQL表的给定行中特定列的内容大小。但是,我不清楚是否有一个SQL语句可以获取给定行中所有列的内容长度的总和。我应该补充说,所有相关的列都是VARCHARS。

是的,我知道我可以通过将整行作为

来完成此操作
SELECT * FROM `table` WHERE *condition*

将生成的行内容折叠成一个字符串并获取该字符串的长度,但我想知道是否没有更高效的一个班轮来完成这项工作。任何提示都将非常感激。

3 个答案:

答案 0 :(得分:5)

好吧,我更喜欢使用CHAR_LENGTH over LENGTH

SELECT CHAR_LENGTH(CONCAT(col1,col2,col3)) 
FROM tableName 
WHERE...

答案 1 :(得分:1)

尝试此解决方案而无需输入列名:

SELECT SUM(character_maximum_length) length,
  table_name
  FROM information_schema.columns 
  WHERE table_name='your_table_name_here'
  AND table_schema=DATABASE()
  -- AND column_name IN ('choose', 'columns')
  GROUP BY table_name;

答案 2 :(得分:0)

你试过了吗?

SELECT char_length(col_name)+ char_length(col_name2)FROM table WHERE condition