Rumah > Soal Jawab > teks badan
Adakah MySQL menukar rentetan kepada nilai angka secara automatik?
Bagaimanakah penukaran ini berfungsi?
Memandangkan units.id
adalah jenis bigint, bagaimanakah pertanyaan ini akan ditafsirkan?
SELECT table.* FROM table WHERE id='text'
P粉0991457102023-10-25 00:55:21
Secara lalai, MySQL menganggap 1 dan "1" sama, tetapi anda boleh mengubahnya dengan menetapkan tingkah laku MySQL kepada mod ketat.
set @@GLOBAL.sql_mode = "STRICT_ALL_TABLES"; set @@SESSION.sql_mode = "STRICT_ALL_TABLES";
Atau anda boleh menetapkan pembolehubah ini dalam fail my.cnf sebagai pembolehubah kekal dalam sql_mode = ''
. Dengan cara ini, MySQL akan membuang ralat jika jenis yang salah digunakan.
Baca http://dev.mysql.com/doc/ refman/5.0/en/server-sql-mode.html untuk butiran lanjut
P粉3302320962023-10-25 00:05:40
Jawapan kepada tiga soalan pertama ialah: ya, ya, dan tidak.
sebagai rentetan 'text'
转换为数字时,它变成值0
.
Dokumentasi yang menerangkan penukaran jenis terdapat di sini .
Untuk pertanyaan anda:
SELECT table.* FROM table WHERE id='text';
Peraturan ini ditangkap melalui petikan dokumentasi:
Dalam erti kata lain, ini sebenarnya bersamaan dengan:
WHERE id = 0.0