MySQL secara automatik menukar/menukar rentetan kepada nombor?
P粉336536706
P粉336536706 2023-10-24 08:36:29
0
2
679

Adakah MySQL menukar rentetan kepada nilai angka secara automatik?

Bagaimanakah penukaran ini berfungsi?

  • '1234'=1234 ?
  • '1abc' = 1 ?
  • 'teks' = 1 ?

Memandangkan units.id adalah jenis bigint, bagaimanakah pertanyaan ini akan ditafsirkan?

SELECT table.* 
FROM table 
WHERE id='text'

P粉336536706
P粉336536706

membalas semua(2)
P粉099145710

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粉330232096

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
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan