Rumah > pangkalan data > tutorial mysql > Bagaimanakah saya boleh menggunakan semula medan yang dikira dalam pertanyaan Mysql untuk meningkatkan kebolehbacaan dan mengelakkan pengulangan?

Bagaimanakah saya boleh menggunakan semula medan yang dikira dalam pertanyaan Mysql untuk meningkatkan kebolehbacaan dan mengelakkan pengulangan?

Barbara Streisand
Lepaskan: 2025-01-24 12:12:10
asal
995 orang telah melayarinya

How Can I Reuse Calculated Fields in MySQL SELECT Queries to Improve Readability and Avoid Repetition?

Gunakan semula medan terkira dalam pertanyaan MySQL SELECT

Apabila berurusan dengan pertanyaan SQL yang besar dan kompleks, adalah sangat berfaedah untuk menggunakan semula medan yang dikira untuk mengelakkan pertindihan dan meningkatkan kebolehbacaan. Dalam MySQL, anda boleh menggunakan pembolehubah pengguna untuk tujuan ini.

Pertimbangkan contoh berikut:

<code class="language-sql">SELECT 
    s.f1 + s.f2 as total_sale, 
    s.f1 / total_sale as f1_percent
FROM sales s</code>
Salin selepas log masuk

Pertanyaan ini cuba menggunakan semula medan terkira total_sale dalam ungkapan f1_percent. Walau bagaimanapun, MySQL akan mengembalikan ralat "lajur tidak diketahui" kerana total_sale tidak ditakrifkan sebagai lajur dalam jadual jualan.

Untuk menyelesaikan masalah ini, kita boleh menggunakan operator := untuk memberikan nilai yang dikira kepada pembolehubah pengguna:

<code class="language-sql">SELECT 
    @total_sale := s.f1 + s.f2 as total_sale, 
    s.f1 / @total_sale as f1_percent
FROM sales s</code>
Salin selepas log masuk

Dengan menambah @ di hadapan nama pembolehubah, kami mencipta pembolehubah pengguna yang boleh dirujuk kemudian dalam pertanyaan. Dalam contoh ini, kami menetapkan nilai s.f1 s.f2 kepada pembolehubah @total_sale. Kemudian kita boleh menggunakan pembolehubah ini dalam ungkapan seterusnya seperti s.f1/@total_sale untuk mengira f1_percent.

Adalah penting untuk ambil perhatian bahawa walaupun kaedah ini membolehkan kami menggunakan semula medan yang dikira, ia juga mempunyai beberapa kaveat. Menurut dokumentasi MySQL, memberikan dan membaca nilai pembolehubah pengguna dalam pernyataan yang sama adalah tingkah laku yang tidak ditentukan dan mungkin menghasilkan keputusan yang tidak dijangka. Oleh itu, adalah disyorkan untuk menggunakan teknik ini dengan berhati-hati dan hanya apabila perlu.

Atas ialah kandungan terperinci Bagaimanakah saya boleh menggunakan semula medan yang dikira dalam pertanyaan Mysql untuk meningkatkan kebolehbacaan dan mengelakkan pengulangan?. 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