Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Mengira Lajur Dengan Cekap Berdasarkan Lajur Lain dalam MySQL?

Bagaimanakah Saya Boleh Mengira Lajur Dengan Cekap Berdasarkan Lajur Lain dalam MySQL?

Linda Hamilton
Lepaskan: 2025-01-17 07:42:10
asal
146 orang telah melayarinya

How Can I Efficiently Calculate a Column Based on Other Columns in 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:

  • Maya: Dikira secara dinamik apabila membaca rekod jadual.
  • Disimpan: Dikira apabila rekod jadual ditulis atau dikemas kini.

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan