SQL округление и усечение, требует тщательного объяснения - PullRequest
0 голосов
/ 22 октября 2009

Я новичок, когда дело доходит до SQL и PHP, и я пытаюсь округлить среднюю цену и убрать лишние нули, которые появляются в данный момент.

В настоящее время мой результат выглядит как: $ 3.005000

Мой код в настоящее время выглядит следующим образом:

$result = mysql_query("SELECT AVG(price) FROM milk WHERE price > 0 ");
$row = mysql_fetch_row ($result);

Я нашел несколько примеров округления и усечения SQL, но, к сожалению, учебники, которые я видел, не дают мне полезной информации о том, где и как я должен реализовать эти изменения.

Это заставляет меня гадать, где вносить изменения - ни один из них не сработал (очевидно).

Если бы кто-то мог предоставить мне пример того, как округлять и усекать мои результаты, включая, где именно мне нужно внести эти изменения в мою текущую конфигурацию, это было бы очень полезно, и я был бы очень благодарен! Я действительно извиняюсь, если моя нерешительность затрудняет объяснение решения.

Спасибо!

Ответы [ 2 ]

2 голосов
/ 22 октября 2009

Форматирование данных должно выполняться в скрипте, выполняющем запрос, а не в самом запросе. Например, в PHP вы можете написать следующее, используя sprintf:

$formatted_price = sprintf("%01.2f", $unformatted_price);

(Пример дополняет руководство по PHP ).

Кроме того, как правило, значения цен хранятся в виде decimal типов или масштабированных целых чисел, а не типов с плавающей запятой, поскольку значения с плавающей запятой не являются точными.

0 голосов
/ 22 октября 2009

MySQL имеет функцию ROUND () .

Так что просто округлите свое среднее значение в запросе SQL:

$result = mysql_query("SELECT ROUND(AVG(price),2) FROM milk WHERE price > 0 ");

Если у вас возникли проблемы с форматированием, вы можете использовать функцию PHP number_format () во время вывода.

...