2011-12-29 11 views
15

Ondalık virgülünü "." Ile değiştirmek mümkün müdür? MySQL çıkışındaki diğer karakterlere (virgül) (nokta) mi? FORMAT gibi işlevleri kullanmak istemiyorum, sadece normalde kullandığım tüm sorguları herhangi bir değişiklik yapmadan kullanmak istiyorum. Bazı ayar (bazı değişken, yerel vb.) Arıyorum. Kılavuzu aramayı denedim ama başarılı olamadım.Ondalık ayırıcıyı MySQL içinde değiştir

+1

Bunu gerçekten anlamıyorum - "MySQL çıkışı" ile ne demek istiyorsunuz? Mysql komut satırı istemcisi üzerinden bir sorgu sonucu görüntüleniyor? Sayısal değerler MySQL tarafından tanımlanan ondalık ayırıcıya sahip değildir, daha ziyade bunları insan kullanımı için çıktı olarak kullanılan dil ve çerçeve tarafından tanımlanır. –

+1

@MattH, İstemci çıktısını kastediyorum (konsol, PHP, her neyse). PHP'deki problem, veritabanı alanı "double" türünde olsa bile her zaman dizgeye sahip olmanızdır. Yani PHP tarafında belirgin bir genel çözüm yok, bu yüzden MySQL'e bakıyordum. – TMS

cevap

19

Hayır, yapamazsınız. Bu SQL standardı ve MySQL onunla uyumludur (en azından o noktada).

Sorun gerçekten çıkışla ilgili değil (bahsettiğiniz gibi, çoğu DBMS'de çeşitli FORMAT işlevleri var) ancak INSERT ile. Örneğin, ayırıcı olarak kullanılmakta olan ondalık noktası (diğer yerellerde yaygın olan) virgülle , kullanabilirseniz, Ekler belirsiz duruma gelir. Söz konusu Cevabımı bakınız: insert-non-english-decimal-points-in-mysql

+0

Ypercube, teşekkürler. SQL standardı nedir? SQL sorgu sözdizimi mi, çıktı biçimi mi, yoksa her ikisi mi? Sadece çıktıya ihtiyacım var, yani eğer 1/3'ü seçersem “0,33333” çıktılar. – TMS

+0

Çıktı formatının SQL standartlarında belirtilmiş mi yoksa dışarıda mı kaldığı ve farklı bağlantı yöntemleri/çerçeveleri için farklı olabileceğinden emin değilim. Ama bunu MySQL'de yapmanın hiçbir yolunu bilmiyorum. –

21

İpucu CSV ihracat için: SELECT REPLACE(CAST(prijs_incl AS CHAR), '.', ',') size avrupa excelsheets sayısal alanlar olarak kullanılabilir girişi verecektir.

+15

Yararlı, dize dönüştürme otomatik olarak, SELECT REPLACE (prijs_incl, '.', ',') 'Doğrudan kullanabilirsiniz, bkz. [Mysql doc] (http://dev.mysql.com/doc/refman/5.0 /en/cast-functions.html#function_cast) – vicenteherrera