明确题意:

输出昵称字符数大于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;