2011-12-29 25 views
15

"。"から小数点のカンマを変更することは可能ですか? (ドット)をMySQL出力の​​他の文字(カンマ)に変換しますか?私はFORMATのような機能を使用したくない、私はちょうど何の変更もせずに私が通常使用するすべてのクエリを使用したい。私はいくつかの設定(いくつかの変数、ロケールなど)を探しています。私はマニュアルを検索しようとしましたが、成功しませんでした。MySQLの小数点記号を変更する

+1

私はこれを本当に理解していません - "MySQLの出力"とはどういう意味ですか? mysqlコマンドラインクライアント経由でクエリ結果を表示しますか?数値には、MySQLで定義された小数点区切り記号がありません。むしろ、人間が使用するために出力する言語とフレームワークによって定義されています。 –

+1

@MattH、クライアント出力(コンソール、PHPなど)を意味します。 PHPの問題は、たとえデータベースフィールドが 'double'型であっても、常に文字列を得ることです。だからPHP側には明白な汎用ソリューションはないので、私はMySQLを探していました。 – TMS

答えて

19

いいえ、できません。これがSQL標準です.MySQLはこれに準拠しています(その時点では少なくとも)。

この問題は実際には出力されません(ほとんどのDBMSでは、さまざまなFORMAT関数があります)が、INSERTと出力されています。値の区切り記号として使用される小数点(他のロケールでは一般的です)としてコンマ,を使用することができた場合、Insertsはあいまいになります。 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), '.', ',')は、ヨーロッパのExcelシートで数値フィールドとして使用できる入力を提供します。

+15

有用なのは、文字列の変換が自動的に行われるので、 'SELECT REPLACE(prijs_incl、 '。'、 '、')'を直接使うことができるということです。[mysql doc](http://dev.mysql.com/doc/refman/5.0) /en/cast-functions.html#function_cast) – vicenteherrera

関連する問題