gpt4 book ai didi

php - 如何显示每 K(代表千克)的大数字?

转载 作者:行者123 更新时间:2023-12-01 00:19:53 25 4
gpt4 key购买 nike

我有一个这样的表:

// table
+----+--------+------------+
| id | name | reputation |
+----+--------+------------+
| 1 | jack | 534431 |
| 2 | peter | 334 |
| 3 | amos | 1300 |
| 4 | carter | 13490 |
| 5 | basil | 1351 |
+----+--------+------------+

现在我想要这个输出:

// newtable
+----+--------+------------+
| id | name | reputation |
+----+--------+------------+
| 1 | jack | 534k |
| 2 | peter | 334 |
| 3 | amos | 1.3k |
| 4 | carter | 13.4k |
| 5 | basil | 1.3k |
+----+--------+------------+

嗯,首先,我想知道,我可以使用 MySQL 来做到这一点吗?像这样:

select id, name,
concat(substr(reputation, 1, 4), IF(LENGTH(reputation) > 4, 'k', '')) as NewRep
from table

我知道上面的查询是不正确的,我只是把它说成一个线索..!


但是,如果使用 MySQL 无法实现,那么我该如何使用 PHP 实现呢?

if (strlen($result['reputation']) >= 4){
$NewRep = substr($result['reputation'],0,3);
$NewRep = round($NewRep).'k';
}

但是这个 ^ 解决方案是不完整的。因为它不支持 .5 (point half),而且它的 sbust() 也不能正常工作。

最佳答案

SELECT 
id,
name,
IF(reputation >= 1000,
CONCAT(IF(LENGTH(LEFT(CAST(reputation / 100 AS CHAR), LENGTH(reputation)-2)) >= 4,
LEFT(reputation, LENGTH(reputation)-3),
LEFT(CAST(reputation / 1000 AS CHAR), LENGTH(reputation)-1)),
'k'),
reputation) AS reputation
FROM
table

类似的东西可能会做到这一点。

输出:

+----+--------+------------+
| id | name | reputation |
+----+--------+------------+
| 1 | jack | 534k |
| 2 | peter | 334 |
| 3 | amos | 1.3k |
| 4 | carter | 13.4k |
| 5 | basil | 1.3k |
+----+--------+------------+

关于php - 如何显示每 K(代表千克)的大数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33825323/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com