Pelarasan Nilai Lajur Bersyarat dengan Fungsi IF() MySQL dalam Penyata SELECT
PenyataanMySQL SELECT
mendapatkan semula data. Kadangkala, anda perlu mengubah suai output lajur secara bersyarat berdasarkan lajur lain dalam baris yang sama. Fungsi IF()
memudahkan perkara ini.
Senario:
Katakan kita mempunyai jadual report
dan perlu memanipulasi tanda lajur amount
berdasarkan lajur type
. Jika type
ialah 'P', amount
hendaklah positif; jika 'N', ia sepatutnya negatif.
Pertanyaan Awal:
<code class="language-sql">SELECT id, amount FROM report;</code>
Pengubahsuaian Bersyarat:
Berikut ialah cara menggunakan IF()
untuk mencapai pelarasan bersyarat yang diingini:
<code class="language-sql">SELECT id, IF(type = 'P', amount, amount * -1) AS amount FROM report;</code>
Penjelasan:
Fungsi IF()
mengambil tiga parameter:
condition
: Syarat untuk menilai (type = 'P'
).true_value
: Nilai dikembalikan jika keadaan adalah benar (amount
).false_value
: Nilai dikembalikan jika syarat adalah palsu (amount * -1
).AS amount
memperuntukkan hasil fungsi IF()
alias amount
untuk output.
Mengendalikan Nilai NULL:
Jika amount
mungkin NULL
, gunakan IFNULL()
untuk pengendalian yang mantap:
<code class="language-sql">SELECT id, IF(type = 'P', IFNULL(amount, 0), IFNULL(amount, 0) * -1) AS amount FROM report;</code>
IFNULL()
mengambil dua hujah:
value
: Nilai untuk diperiksa NULL
(amount
).default_value
: Nilai untuk dikembalikan jika value
ialah NULL
(0).Bacaan Selanjutnya:
Untuk lebih lanjut tentang fungsi kawalan aliran MySQL, rujuk dokumentasi rasmi: https://www.php.cn/link/0cfe3c931a81acba365b335768dd0d93
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Fungsi IF() MySQL untuk Melaraskan Nilai Lajur Secara Bersyarat dalam Pernyataan SELECT?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!