千家信息网

示例比较MySQL中字符串和数字

发表于:2024-11-20 作者:千家信息网编辑
千家信息网最后更新 2024年11月20日,本文主要给大家介绍示例比较MySQL中字符串和数字,文章内容都是笔者用心摘选和编辑的,具有一定的针对性,对大家的参考意义还是比较大的,下面跟笔者一起了解下示例比较MySQL中字符串和数字吧。在项目中,
千家信息网最后更新 2024年11月20日示例比较MySQL中字符串和数字

文主要给大家介绍示例比较MySQL中字符串和数字,文章内容都是笔者用心摘选和编辑的,具有一定的针对性,对大家的参考意义还是比较大的,下面跟笔者一起了解下示例比较MySQL中字符串和数字吧。

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

mybatis中的xml语句如下:

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

搜索时我们输入"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中字符串和数字,很多读者朋友肯定多少有一定的了解,如需获取更多的行业知识信息 ,可以持续关注我们的行业资讯栏目的。

0