[Err] 1054 Mysql问题分析及解决方法

SQL 1: SELECT   * from  table1 WHERE courier_phone =132aaaaaaaa

SQL 2: SELECT   * from  table1 WHERE courier_phone ='132aaaaaaa'

courier_phone 在数据库中为 varchar类型;

SQL 1 报出错误 1054 

可是执行SQL 3, SQL4 都没有问题。

SQL 3: SELECT   * from  table1 WHERE courier_phone =13212345678

SQL 4: SELECT   * from  table1 WHERE courier_phone ='13212345678'

内心很是困惑,为什么加上 引号就能成功? 

13212345678与132aaaaaaa 不都是转换成字符串了,怎么就一个不成功?

答: 13212345678 ,132aaaaaaa 不加引号都会默认为数值类型,当SQL执行前, mysql库会先加载解析SQL,13212345678 成功解析成为数值类型,但是132aaaaaaa 不能解析成为数值类型(所以就报1054的错误)。


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值