为什么即使我的列中没有电子邮件插件的值 0,我也会在查询中获得结果


MariaDB [db]> SELECT * from jobseeker_account WHERE email_address = 0;
+----+----------------+--------------------------------+------------------------------------------+------------+--------------+--------------------------------------------------------------+-----------+-------------+---------------------+---------------------+------------------+--------+
| id | jobseeker_code | email_address                  | email_token                              | code_token | email_verify | password                                                     | google_id | facebook_id | date_created        | last_login          | last_change_pass | status |
+----+----------------+--------------------------------+------------------------------------------+------------+--------------+--------------------------------------------------------------+-----------+-------------+---------------------+---------------------+------------------+--------+
|  1 | APP052000001   | user@gmail.com          | 4d517de609a97afae45aee04d4862e8a7c195805 | 678503     |            0 | $2y$10$0Ug1iGPsBqoy5p7YjwOx3uQwQLM6S5hyYy8e2QX9yYwlqsNNnoHJS | NULL      | NULL        | 2020-05-14 16:25:50 | 2020-05-14 16:25:50 | NULL             |      1 |
|  2 | APP052000002   | user@gmail1.com | f5ce9b3b545019c71a0846e13c10a1c8a5edb3bd | 397097     |            0 | $2y$10$CGXrDVMUKrtreLgQ0gkEp.UNBa8ogtJ6SWhxPjUQEQ7a1GxhPBg1W | NULL      | NULL        | 2020-05-14 19:36:31 | 2020-05-14 19:36:31 | NULL             |      1 |
+----+----------------+--------------------------------+------------------------------------------+------------+--------------+--------------------------------------------------------------+-----------+-------------+---------------------+---------------------+------------------+--------+
2 rows in set, 2 warnings (0.001 sec)

即使电子邮件地址列中没有 0 值,我也得到结果

当此条件:

email_address = 0

被评估,发生的情况是将电子邮件隐式转换为整数,以便相等的两个部分具有相同的数据类型。
无法转换为整数的值(如user@gmail.com(的转换结果为0
因此,条件返回电子邮件的此类值的TRUE
如果有像123user@gmail.com这样的电子邮件,它将被转换为123并且您将无法在结果中得到它。
有关表达式中类型转换的所有内容都在此处说明:
表达式计算中的类型转换

最新更新