У меня есть таблица вроде этого:
// 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
(точка) , а также его sbust()
тоже не работает.