PHP.EE FOORUM   
Nimi:   Pass:   Mäleta mind! 
   Teemad | php.ee esilehele | registreeri | Märgi kõik teemad loetuks | #php.ee Skype vestlus | RSS
UUS TEEMA  OTSI  Lehekülgi: 1
2 veergu korrutada üheks veeruks.
Postitaja: AlgajaHuviline 2016-11-03 18:48:57
Tere,

Olen üsna algaja ja ei leidnud netist kuidas seda täpselt teha.
Veerud mida korrutada on datatype tinyint ja bigint. Ja veerg kuhu tulemus peaks tulema on bigint. Arvud veergudes on alla 1000.

UPDATE tabel SET veerg3=veerg1*veerg2 WHERE id

Proovisin selle koodiga. Kood töötab, kuid mitte nii nagu soovin. Mul oleks vaja teha nii, et kui uus kasutaja on loodud siis oleks arvutus tehtud. Ehk siis kuidagi on vaja see vaikimisi sättida see arvutus. Vaikimisi on veerg1 "2" ja veerg2 "100". Paraku uue kasutaja registreerimisel arvutust ei tehta ja pean uuesti selle koodi phpmyadminis sisestama, et arvutus tehtud saaks.

Proovisin veerg3 vaikimisi panna "puudub", "Määratud" ehk "0" Ja ikka uue kasutaja loomisel arvutust ei tehta.
RE: 2 veergu korrutada üheks veeruks.
Postitaja: sdf43 2016-11-03 20:11:03
http://www.thegeekstuff.com/2014/11/mysql-insert-command/
vaata 10. Expression in Insert Values
järsku on abiks
RE: 2 veergu korrutada üheks veeruks.
Postitaja: blaa 2016-11-03 20:31:20
Lihtsalt repliigiks, et kui veerg2 on alati ainult kuni 1000, siis piisab kui veerg3 on int või mediumint ja veerg2 smallint.
Bigint on natuke liiast.
RE: 2 veergu korrutada üheks veeruks.
Postitaja: AlgajaHuviline 2016-11-04 10:54:01
Ise küsin ise vastan.

ALTER TABLE tabel ADD COLUMN veerg3 DOUBLE GENERATED ALWAYS AS (veerg1*veerg2)

See lõi virtuaalse veeru.
Nüüd tekkis küsimus seoses sellel lingil oleva infoga: https://en.wikipedia.org/wiki/Virtual_column

There are two types of virtual columns:

Virtual columns;
Persistent columns.

Kas mul oleks vaja luua hoopis Persistent veerg? Point on selles, et veerg1 ja veerg2 on ka pidevas muutumises.

Siis veel üke küsimus. Kuna neid veerge hakkan alati kasutajale näitama kas siis virtuaalne veerg koormab rohkem andmebaasi, kui persistent? Mis mul targem oleks teha? Võimalik, et edaspidi on vaja virtuaalne veerg ka mõne teise veeruga arvutada järgmine eraldi veerg.

Leheküljed: 1

©2002-2013 Martin Rebane & PHP.ee kaasautorid
  0.0794050693512