MySQL ST_AsGeoJSON возвращает цифры с плавающей запятой не в исходных данных

Вам нужно будет перебрать набор столбцов и проверить их. Вы должны иметь возможность получить список всех столбцов с командой таблицы DESCRIBE.

Псевдокод:


foreach $column ($cols) {
   query("SELECT count(*) FROM table WHERE $column IS NOT NULL")
   if($result is zero)  {
      # $column contains only null values"
      push @onlyNullColumns, $column;
   } else {
      # $column contains non-null values
   }
}
return @onlyNullColumns;

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

0
задан GluePear 13 July 2018 в 09:03
поделиться

1 ответ

Это обычная проблема. вы можете узнать об этом подробнее: https://bugs.php.net/bug.php?id=41357

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

var_dump (214.16569 - 214);

var_dump (114.16569 - 114);

Решение:

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

$ value = number_format ($ value, 4);

вы можете использовать приведенный выше код для форматирования ваших данных. Он будет показывать только 4 цифры после десятичного числа.

0
ответ дан S M Jobayer Alam 17 August 2018 в 13:18
поделиться
  • 1
    Но это число, возвращаемое MySQL. Кажется, это проблема MySQL, а не проблема PHP. – GluePear 13 July 2018 в 09:47
Другие вопросы по тегам:

Похожие вопросы: