字段名称没有被截断的问题。我在一个网站上显示一个排行榜,而名字很长的玩家正在打破这个桌面。我尝试了以下,但无济于事。希望有人可以提供帮助!
select
case
when char_length('player_name') >= 13 then left('player_name', 12) + '...'
else player_name
end player_name,
case
when char_length('squad') >= 10 then left('squad', 10)
else squad
end squad,
pub_rank
from
database.player_rank
order by pub_rank desc
limit 10;
以下是一些示例数据。我在PHP中添加了行#' s。有些球员没有球队。
player_name squad player_rank
Kalu 1st line 106.70
Jugu Cobra 96.29
BOG Blood 87.52
vai cavalo 87.09
Ebony&Ivory Bury 85.80
Taunt BlameTaunt 83.44
7461756e74207375636 82.98
Tut 82.03
baddreams 81.09
Tryo Team Gluten 80.40
`
请,谢谢!
答案 0 :(得分:1)
在列周围使用反引号。使用concat()来连接值和字符串。
select
case when char_length(`player_name`)>=13
then CONCAT(left(`player_name`, 12), '...')
else player_name end player_name,
case when char_length(`squad`)>=10
then left(`squad`, 10)
else squad end squad,
pub_rank from database.player_rank
order by pub_rank desc limit 10;
修改强>
http://sqlfiddle.com/#!9/cc789/3我用查询构建了这个小提琴。可能已经更改了一些名称并使用其他数字进行查询,但它显示了必须完成的操作 - >用于连接的concat()和用于表名的“`”
答案 1 :(得分:0)
试试这个
选择if(char_length(' player_name')> = 13,left(' player_name',12), player_name)from database.player_rank order by pub_rank desc limit 10;
如果是一个条件,请使用一个