• 技术文章 >数据库 >mysql教程

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

    不言不言2018-12-21 10:22:13转载1876
    本篇文章给大家带来的内容是关于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中文网其它相关文章!

    声明:本文转载于:segmentfault,如有侵犯,请联系admin@php.cn删除
    专题推荐:mysql
    上一篇:sql server数据库备份方式有哪些 下一篇:Mongodb与MySQL之间的比较分析
    20期PHP线上班

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• mysql字符串长度函数char_length、length、bit_length区别• MySQL字符串转日期类型• MySQL字符串大小写转换函数• MySQL字符串与字符串比较函数学习• mysql字符串批量查找和替换• mysql字符串截取函数详解• mysql字符串类型的字段排序有关问题 • mysql字符串类型的字段排序问题
    1/1

    PHP中文网