Mysql 为什么即使我的列中没有电子邮件地址的值0,我也会在查询中得到结果
在以下情况下,即使电子邮件地址列中没有0值,我也会得到结果:Mysql 为什么即使我的列中没有电子邮件地址的值0,我也会在查询中得到结果,mysql,sql,mariadb,Mysql,Sql,Mariadb,在以下情况下,即使电子邮件地址列中没有0值,我也会得到结果: MariaDB [db]> SELECT * from jobseeker_account WHERE email_address = 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)
计算后,将电子邮件隐式转换为整数,以便等式的两个部分具有相同的数据类型。
值转换的结果,如user@gmail.com无法转换为整数的值为0。
因此,对于电子邮件的这些值,条件返回TRUE。
如果有像这样的电子邮件123user@gmail.com这将被转换为123,而您不会在结果中得到它。
关于表达式中类型转换的所有内容都将在此处解释:
在这种情况下:
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)
计算后,将电子邮件隐式转换为整数,以便等式的两个部分具有相同的数据类型。
值转换的结果,如user@gmail.com无法转换为整数的值为0。
因此,对于电子邮件的这些值,条件返回TRUE。
如果有像这样的电子邮件123user@gmail.com这将被转换为123,而您不会在结果中得到它。
关于表达式中类型转换的所有内容都将在此处解释:
show warningsMariaDB[db]>show WARNINGS->;+----+----+---+----------------------------+--------------+\级别|代码|消息|+---+----+--------------------------------------+|警告| 1292 |截断不正确的双精度值:“APP05200001”|警告| 1292 |截断不正确的双精度值:“APP05200002”|+----+-----------------------------+2行,在集合0.000秒中您可以编辑问题以包括在内信息您的电子邮件地址正在转换为双精度,匹配=0show warningsMariaDB[db]>SHOW WARNINGS->;+----+----+---+----------------------------+\n级别|代码|消息|+---+----+--------------------------------------+|警告| 1292 |截断不正确的双精度值:“APP05200001”|警告| 1292 |截断不正确的双精度值:“APP05200002”|+----+-----------------------------+2行,在集合0.000秒中您可以编辑问题以包括在内信息您的电子邮件地址正在转换为double,匹配项=0,因此我需要将0添加到我的查询中?像这样,从求职者账户中选择*电子邮件地址=0;准确地说,这将是一个字符串比较,但使用单引号是一个很好的做法:其中email_address='0',因为双引号也可以用于标识符。所以我需要在查询中添加0?像这样,从求职者账户中选择*电子邮件地址=0;确切地说,这将是一个字符串比较,但使用单引号是一个很好的做法:其中email_address='0',因为双引号也可以用于标识符。