Bolehkah saya Menggunakan Alias Lajur dalam Klausa WHERE?
Jan 21, 2025 pm 05:42 PMRujuk alias lajur dalam klausa WHERE
Merujuk alias lajur dalam klausa WHERE kadangkala boleh menyebabkan ralat semasa memproses pertanyaan pangkalan data. Ini kerana alias biasanya digunakan selepas klausa WHERE dinilai. Pertimbangkan pertanyaan berikut:
SELECT logcount, logUserID, maxlogtm , DATEDIFF(day, maxlogtm, GETDATE()) AS daysdiff FROM statslogsummary WHERE daysdiff > 120
Dalam pertanyaan ini, ralat berlaku kerana "daysdiff" ialah alias lajur yang dibuat dalam pernyataan SELECT. Untuk merujuk alias dalam klausa WHERE, anda boleh memaksa SQL untuk menilai pernyataan SELECT sebelum klausa WHERE. Ini boleh dicapai dengan menggunakan kurungan atau ungkapan jadual biasa (CTE).
Kurungan/Subkueri:
SELECT * FROM ( SELECT logcount, logUserID, maxlogtm, DATEDIFF(day, maxlogtm, GETDATE()) AS daysdiff FROM statslogsummary ) as innerTable WHERE daysdiff > 120
CTE:
WITH CTE AS ( SELECT logcount, logUserID, maxlogtm, DATEDIFF(day, maxlogtm, GETDATE()) AS daysdiff FROM statslogsummary ) SELECT * FROM CTE WHERE daysdiff > 120
Dengan menggunakan kurungan atau CTE, pernyataan SELECT dinilai sebelum klausa WHERE, membolehkan anda merujuk alias lajur dalam klausa WHERE tanpa ralat.
Atas ialah kandungan terperinci Bolehkah saya Menggunakan Alias Lajur dalam Klausa WHERE?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Artikel Panas

Alat panas Tag

Artikel Panas

Tag artikel panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Kurangkan penggunaan memori MySQL di Docker

Bagaimana anda mengubah jadual di MySQL menggunakan pernyataan Alter Table?

Cara menyelesaikan masalah MySQL tidak dapat membuka perpustakaan bersama

Apa itu SQLite? Gambaran Keseluruhan Komprehensif

Jalankan MySQL di Linux (dengan/tanpa bekas podman dengan phpmyadmin)

Menjalankan Pelbagai Versi MySQL di MacOS: Panduan Langkah demi Langkah

Bagaimanakah saya menjamin MySQL terhadap kelemahan biasa (suntikan SQL, serangan kekerasan)?

Bagaimana saya mengkonfigurasi penyulitan SSL/TLS untuk sambungan MySQL?
