MySQL中字符串和数字的比较(附示例)
程序员文章站
2022-03-17 08:03:50
...
本篇文章给大家带来的内容是关于MySQL中字符串和数字的比较(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
在项目中,我们经常会用到模糊搜索,但如果错误的将字符串类型和数字类型做比较,有时搜索出来的结果就并不是我们预期的。举例如下:
mybatis中的xml语句如下:
<if test="criteria != null and criteria.length()>0"> AND (name like concat("%",#{criteria},"%") OR id = #{criteria}) </if>
搜索时我们输入“884测试”,结果会包含了id=884的记录,但是名称却没有匹配的。这就是MySQL字符串和数字比较的坑了:比较时会把字符串类型转成整数类型,从首字母开始,遇到非数字类型后终止。
举几个例子看下:
SELECT "abc"=1; 结果:0
SELECT "1abc"=1; 结果:1
SELECT "abc"=0; 结果:1
SELECT "a2bc"=2; 结果:0
那么这个问题改如何解决了,其实只需要做一个类型转换就可以了,如下:
SELECT "2bc"=cast(2 as CHAR); 结果:0
以上就是MySQL中字符串和数字的比较(附示例)的详细内容,更多请关注其它相关文章!
下一篇: 详解深度优先和广度优先算法实例
推荐阅读
-
PHP中strcmp()和strcasecmp()函数字符串比较用法分析
-
以php中的比较运算符操作整型,浮点型,字符串型,布尔型和空类型
-
php+正则将字符串中的字母数字和中文分割
-
sql 判断字符串中是否包含数字和字母的方法
-
JS实现快速比较两个字符串中包含有相同数字的方法
-
php中字符串和整数比较的操作方法
-
MySQL数据库中varchar类型的数字比较大小的方法
-
字符串中找出连续最长的数字串:读入一个字符串str,输出字符串str中的连续最长的数字串;合法括号的判断:给定一个字符串A和其长度n,请返回一个bool值代表它是否为一个合法的括号串(只能由括号组成)
-
mysql中EXISTS和IN的使用方法比较
-
关于mysql中时间日期类型和字符串类型的选择