Dalam MySQL, terdapat mekanisme untuk menukar nilai kepada integer menggunakan fungsi seperti Cast() dan Convert(). Walau bagaimanapun, adakah terdapat kaedah untuk memastikan secara langsung sama ada nilai itu sudah menjadi integer? Artikel ini meneroka penyelesaian.
Penyelesaian Menggunakan Operator REGEXP (Untuk Nilai Rentetan)
Satu pendekatan berkesan untuk menyemak sama ada nilai rentetan ialah integer adalah dengan menggunakan REGEXP operator bersama-sama dengan ungkapan biasa. Ungkapan ini sepadan dengan rentetan dengan corak berikut:
^-?[0-9]+$
Corak ini menyemak nilai yang bermula dengan kemungkinan tanda negatif (-) diikuti dengan satu atau lebih digit (0-9). Dengan menggunakan operator REGEXP seperti berikut, anda boleh mendapatkan semula semua baris yang medannya sepadan dengan corak integer ini:
SELECT field FROM table WHERE field REGEXP '^-?[0-9]+$';
Pertanyaan ini dengan cekap mengenal pasti nilai integer dalam data rentetan.
Penyelesaian Menggunakan Perbandingan Berangka (Untuk Nilai Berangka)
Jika medan yang dimaksudkan ialah angka, anda boleh memanfaatkan fungsi ceil() untuk membandingkan integernya bersamaan dengan nilai asal. Jika kedua-dua nilai adalah sama, ini menunjukkan bahawa medan itu ialah integer:
SELECT field FROM table WHERE ceil(field) = field;
Kaedah ini cekap untuk mengenal pasti integer dalam medan berangka. Dengan menggunakan salah satu daripada teknik ini, anda boleh menentukan dengan berkesan sama ada nilai ialah integer dalam MySQL.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menentukan jika Nilai ialah Integer dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!