Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mengira Lajur Dengan Cekap Berdasarkan Lajur Lain dalam MySQL?
Cara untuk mengira lajur dengan cekap berdasarkan lajur lain dalam MySQL
MySQL 5.7.6 dan ke atas memperkenalkan lajur yang dijana (Lajur Dihasilkan), yang merupakan cara yang cekap untuk mengira nilai lajur baharu secara automatik berdasarkan lajur sedia ada dalam jadual yang sama. Tidak seperti paparan, lajur yang dijana adalah sebahagian daripada definisi jadual dan dikemas kini secara automatik apabila lajur sumber berubah.
Lajur terjana maya dan lajur terjana disimpan
Lajur yang dijana boleh menjadi maya atau disimpan:
Dalam kes ini, menyimpan lajur yang dijana adalah lebih sesuai kerana nilai yang dikira perlu tersedia dengan segera apabila rekod baharu dimasukkan atau rekod sedia ada dikemas kini.
Pelaksanaan lajur yang dijana menggunakan storan
Andaikan jadual mempunyai dua lajur: price
dan quantity
, dan kami mahu menambah lajur baharu amount
yang nilainya ialah hasil darab price
dan quantity
. Lajur yang dijana storan boleh dibuat menggunakan pernyataan SQL berikut:
<code class="language-sql">CREATE TABLE order_details ( price DOUBLE, quantity INT, amount DOUBLE AS (price * quantity) STORED );</code>
Setelah lajur dibuat, amount
akan dikira secara automatik dan disimpan untuk setiap baris dalam jadual. Sebarang perubahan kepada price
atau quantity
akan mencetuskan kemas kini amount
.
Contoh yang mengandungi data jadual
Selepas memasukkan beberapa data sampel:
<code class="language-sql">INSERT INTO order_details (price, quantity) VALUES(100,1),(300,4),(60,8);</code>
Jadual akan kelihatan seperti ini:
id | price | quantity | amount |
---|---|---|---|
1 | 100 | 1 | 100 |
2 | 300 | 4 | 1200 |
3 | 60 | 8 | 480 |
amount
Lajur akan diisi dan dikemas kini secara automatik mengikut keperluan, membolehkan akses yang cekap kepada nilai yang dikira.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengira Lajur Dengan Cekap Berdasarkan Lajur Lain dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!