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和oracle的区别是什么

mysql如何安装5.7.21版本

如何修改mysql字段为首字母大写

mysql检查约束怎么写

介绍mysql数据库的预处理(prepared statement)性能测试

mysql启动报错的解决方法

如何通过mysql 判断点是否在指定多边形区域内

如何解决mysql odbc安装丢失的问题

mysql导入数据库的方法

简单讲解对wordpress数据库的认识及使用命令

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


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

数据库系统概念 第6版

机械工业出版社

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



打赏

取消

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

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

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

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

评论

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