2011-12-29 4 views
15

Можно ли изменить десятичную запятую из "." (точка) для другого символа (запятая) в выводе MySQL? Я не хочу использовать такие функции, как FORMAT, я просто хочу использовать все запросы, которые я обычно использую без каких-либо изменений. Я ищу некоторые настройки (некоторой переменной, локали и т. Д.). Я попытался найти руководство, но безуспешно.Изменение десятичного разделителя в MySQL

+1

Я действительно не понимаю это - что вы подразумеваете под «MySQL output»? Отображение результата запроса через клиент командной строки mysql? Числовые значения не имеют десятичного разделителя, определенного MySQL, а они определяются языком и средой, используемой для вывода их для использования человеком. –

+1

@MattH, я имею в виду любой вывод клиента (консоль, PHP, что угодно). Проблема в PHP заключается в том, что вы всегда получаете строку, даже если поле базы данных имеет тип 'double'. Таким образом, нет очевидного общего решения на стороне PHP, поэтому я смотрел в MySQL. – TMS

ответ

19

Нет, вы не можете. Это стандарт SQL, и MySQL соответствует ему (по крайней мере в этой точке).

Проблема на самом деле не связана с выходом (как вы упомянули, в большинстве СУБД существуют различные функции FORMAT), но с INSERT. Если вы могли бы использовать запятую ,, например, в виде десятичной точки (что принято в других локалях), которая также используется в качестве разделителя значений, вставки будут двусмысленными. Смотрите мой ответ на вопрос: insert-non-english-decimal-points-in-mysql

+0

ypercube, спасибо. Что такое стандарт SQL? Синтаксис SQL-запроса или выходной формат или оба? Мне нужен только вывод, так что если я делаю 'select 1/3', он выводит' 0,33333'. – TMS

+0

Я не уверен, что выходной формат указан в стандартах SQL, или который не учитывается, и может отличаться для разных методов/фреймворков. Но я не знаю, как это сделать в MySQL. –

21

Совет для экспорта CSV: SELECT REPLACE(CAST(prijs_incl AS CHAR), '.', ',') даст вам вход, который может быть использован в качестве числовых полей в европейских excelsheets.

+15

Полезно, если вы можете напрямую использовать 'SELECT REPLACE (prijs_incl, '.', ',')', Поскольку преобразование строки является автоматическим, см. [Mysql doc] (http://dev.mysql.com/doc/refman/5.0 /en/cast-functions.html#function_cast) – vicenteherrera

Смежные вопросы