MySQL中字符串和数字的比较(附示例)


本文摘自PHP中文网,作者不言,侵删。

本篇文章给大家带来的内容是关于MySQL中字符串和数字的比较(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

在项目中,我们经常会用到模糊搜索,但如果错误的将字符串类型和数字类型做比较,有时搜索出来的结果就并不是我们预期的。举例如下:

mybatis中的xml语句如下:

1

2

3

<if test="criteria != null and criteria.length()>0">

    AND (name like concat("%",#{criteria},"%") OR id = #{criteria})

</if>

搜索时我们输入“884测试”,结果会包含了id=884的记录,但是名称却没有匹配的。这就是MySQL字符串和数字比较的坑了:比较时会把字符串类型转成整数类型,从首字母开始,遇到非数字类型后终止。

举几个例子看下:

1

2

SELECT "abc"=1;

结果:0

1

2

SELECT "1abc"=1;

结果:1

1

2

SELECT "abc"=0;

结果:1

1

2

SELECT "a2bc"=2;

结果:0

那么这个问题改如何解决了,其实只需要做一个类型转换就可以了,如下:

1

2

SELECT "2bc"=cast(2 as CHAR);

结果:0

以上就是MySQL中字符串和数字的比较(附示例)的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

详解高性能mysql主从架构的复制原理及配置

详解mysql中order by多字段排序规则

mysql版本查询命令是什么

anemometer图形化显示mysql慢日志的工具搭建及使用的实例解析

centos7 mysql数据库安装及配置实现教程

详解mysql使用 row 格式 binlog 撤销操作

mysql数据库用户权限管理

mysql线程处于opening tables的问题解决(附示例)

mysql的初始密码在哪看

mysql触发器怎么写

更多相关阅读请进入《mysql》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...