我经常有类似的SQL语句
SELECT LENGTH(col_name) FROM `table` WHERE *condition*
确定mySQL表的给定行中特定列的内容大小。但是,我不清楚是否有一个SQL语句可以获取给定行中所有列的内容长度的总和。我应该补充说,所有相关的列都是VARCHARS。
是的,我知道我可以通过将整行作为
来完成此操作SELECT * FROM `table` WHERE *condition*
将生成的行内容折叠成一个字符串并获取该字符串的长度,但我想知道是否没有更高效的一个班轮来完成这项工作。任何提示都将非常感激。
答案 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