明确题意:
输出昵称字符数大于10的用户信息,对于字符数大于13的用户昵称输出前10个字符然后加上三个点号:『...』
问题分解:
- 筛选昵称字符数大于10的用户:WHERE CHAR_LENGTH(nick_name) > 10
- 对字符数大于13的用户昵称做处理:IF(CHAR_LENGTH(nick_name) > 13,
- 前10个字符加上三个点号:CONCAT(SUBSTR(nick_name, 1, 10), '...')
细节问题:
- 表头重命名:as
完整代码:
SELECT uid,
IF(CHAR_LENGTH(nick_name) > 13,
CONCAT(SUBSTR(nick_name, 1, 10), '...'),
nick_name
) AS nick_name
FROM user_info
WHERE CHAR_LENGTH(nick_name) > 10;