MySQL secara otomatis melemparkan string ke nomor:
SELECT '1string' = 0 AS res; -- res = 0 (false)
SELECT '1string' = 1 AS res; -- res = 1 (true)
SELECT '0string' = 0 AS res; -- res = 1 (true)
dan string yang tidak dimulai dengan angka dievaluasi sebagai 0:
SELECT 'string' = 0 AS res; -- res = 1 (true)
Tentu saja, ketika kami mencoba membandingkan string dengan string lain, tidak ada konversi:
SELECT '0string' = 'string' AS res; -- res = 0 (false)
tetapi kita dapat memaksa konversi menggunakan, misalnya, operator +:
SELECT '0string' + 0 = 'string' AS res; -- res = 1 (true)
query terakhir mengembalikan TRUE karena kita menjumlahkan string '0string' dengan angka 0, sehingga string harus diubah menjadi angka, menjadi SELECT 0 + 0 = 'string'
dan sekali lagi string 'string' diubah menjadi angka sebelum dibandingkan dengan 0, dan kemudian menjadi SELECT 0 = 0
yang BENAR.
Ini juga akan berfungsi:
SELECT '1abc' + '2ef' AS total; -- total = 1+2 = 3
dan akan mengembalikan jumlah string yang dikonversi ke angka (1 + 2 dalam kasus ini).