Mysql Veri Tipi Sorunu
-
Merhaba müridler
Kuyumcuya internet sitesi yapıyorum.Biliyosunuz ki altın fiyatları sürekli değişiyor.
Onun için Fiyat alanım şu şekilde 520,15 TL olarak kayıt ediyorum.
Altın fiyatları arttığı zaman mysql şu şekilde update çalıştırıp fiyatların tümünde oynama yapmak istiyorum.
update urunler
set Fiyat = Fiyat + 20
bu şekilde yaptığım zaman alan kısmı böyle oluyor 540 TL virgülden sonrasını atıyor.
bu arada veri tipim varchar , daha önce double , decimal falan denedim fiyatları nokta şeklinde yani 420.55 olarak yazdım ama veritabanına eklerken 420 olarak ekledi.
sayı veri tiplerinde bir türlü başaramadım olayı.
tekrar varchara geçtim onda da küsüratlı sayıyı atıyor.update denemelerim bunlar
update urunler
set Fiyat = Fiyat + '20,00'
update urunler
set Fiyat = Fiyat + '20,'
ama yemedi bir türlü, nasıl çıkarım bu işten?
-
Kullanman gereken veri tipi kesirli sayı saklayabilen Float, Decimal gibi alanlar olmalı, varchar hiç uygun değil.
Bunları denediğini söylemişsin ama acaba tam sayı dışında kesir uzunluğu da belirttin mi?
Ben Decimal(13,2) ile bir örnek hazırladım. 13 tam sayı kısmı, 2 ise kesir.
Örneği Fiddle'dan inceleyebilirsin : http://sqlfiddle.com/#!2/9e96c/1 -
update urunler from fiyat = fiyat*(1.2,5) şeklinde denesen ?
WebJas tarafından 10/May/13 18:31 tarihinde düzenlenmiştir -
veri tipi olarak double,float seçebilirsin hocam. aradaki işaret de virgül değil nokta olacak. ayıca koyduğun tek tırnakları da kaldır, onlar string türevleri için geçerli
-
sorun çözülmüş zaten de ben o sqlfiddle a nasıl daha önce denk gelmemişim lan sadece jsfiddle var sanıyodum:|
-
Hocam veritabanında Altının net gram fiyatını kaydet. Ürünlerde ise ürün ismi ve gramajı şeklinde kaydet. Kullanıcıya gösterirken ürün fiyat : ürüngramaj* altıngram
şeklinde göster bence. Çünkü her gram değişikliğinde tüm ürünleri update etmen lazım. Diğer türlü sadece tek bir satır güncelleme yaparak bütün ürünlerin fiyatlarını güncellemiş olursun.
-
buzukatak bunu yazdı
Kullanman gereken veri tipi kesirli sayı saklayabilen Float, Decimal gibi alanlar olmalı, varchar hiç uygun değil.
Bunları denediğini söylemişsin ama acaba tam sayı dışında kesir uzunluğu da belirttin mi?
Ben Decimal(13,2) ile bir örnek hazırladım. 13 tam sayı kısmı, 2 ise kesir.
Örneği Fiddle'dan inceleyebilirsin : http://sqlfiddle.com/#!2/9e96c/1
Tamadır hocam bu tam aradığım, ancak dediğin sayı tipinde olması lazım ama decimal'in o şekilde kullanıldığını bilmiyorum iyi oldu.
burda 13 tam sayı kısmı 13 tane rakam girilebilir dimi? -
DrKill bunu yazdı
Hocam veritabanında Altının net gram fiyatını kaydet. Ürünlerde ise ürün ismi ve gramajı şeklinde kaydet. Kullanıcıya gösterirken ürün fiyat : ürüngramaj* altıngram
şeklinde göster bence. Çünkü her gram değişikliğinde tüm ürünleri update etmen lazım. Diğer türlü sadece tek bir satır güncelleme yaparak bütün ürünlerin fiyatlarını güncellemiş olursun.
hocam günlük fiyata göre güncellemiycem altın +5 veya -5 TL düştüğünde güncelleyeceğim onun için toplu update daha iyi gibi geldi bana, senin dediğinide düşünüştüm.
-
EmQceR bunu yazdı
Tamadır hocam bu tam aradığım, ancak dediğin sayı tipinde olması lazım ama decimal'in o şekilde kullanıldığını bilmiyorum iyi oldu.
burda 13 tam sayı kısmı 13 tane rakam girilebilir dimi?Ben onu yanlış ifade etmişim düzelteyim hemen. 13 toplam uzunluk. 2'si kesir için ayrıldığından en uzun 11 basamaklı tam sayı eklenebilir.
-
buzukatak bunu yazdıEmQceR bunu yazdı
Tamadır hocam bu tam aradığım, ancak dediğin sayı tipinde olması lazım ama decimal'in o şekilde kullanıldığını bilmiyorum iyi oldu.
burda 13 tam sayı kısmı 13 tane rakam girilebilir dimi?Ben onu yanlış ifade etmişim düzelteyim hemen. 13 toplam uzunluk. 2'si kesir için ayrıldığından en uzun 11 basamaklı tam sayı eklenebilir.
anladım hocam çok teşekkürler
-
buzukatak bunu yazdı
Kullanman gereken veri tipi kesirli sayı saklayabilen Float, Decimal gibi alanlar olmalı, varchar hiç uygun değil.
Bunları denediğini söylemişsin ama acaba tam sayı dışında kesir uzunluğu da belirttin mi?
Ben Decimal(13,2) ile bir örnek hazırladım. 13 tam sayı kısmı, 2 ise kesir.
Örneği Fiddle'dan inceleyebilirsin : http://sqlfiddle.com/#!2/9e96c/1oha ne güzel siteymiş yahu :|