mysql=null的优雅解决方法

对于不是采用所有字段都是not null的mysql表设计而言,mysql提供了一个<=>操作符。

在oracle中我们的处理方式通常类似:

where a = #{var} or #{var} is null

或者

where a = nvl(#{var},‘ ‘) or nvl(#{var},‘ ‘) = ‘ ‘

在mysql中则是:

where a = ifnull(#{var},‘ ‘) or ifnull(#{var},‘ ‘) = ‘ ‘

或者:

where a= #{var} or #{var} is null。

通过<=>操作符,就无需关心null的问题,在<=>内部,null被当成了普通值进行对待,如下:

where a<=>#{var}

不用进行特殊的处理。

时间: 2024-10-10 00:34:31

mysql=null的优雅解决方法的相关文章

UCenter info: MySQL Query Error的解决方法----For Discuz!

备注: 出现这个问题同时会造成论坛注册,登录和发帖时等页面无法跳转(APP1运行不正常) 案例: UCenter info: MySQL Query Error SQL:SELECT * FROM [Table]notelist WHEREclosed='0' AND app1<'1' AND app1>'-5' LIMIT 1 Error:Unknown column 'app1' in 'whereclause' Errno:1054 分析: 错误是说在UCenter数据库的notelis

MySQL主从复制出错的解决方法

MySQL主从复制出错的解决方法 主从复制中若是出现错误可以通过几个方法来进行解决 1.如果主从复制时发生了主键冲突,从而阻止了主从复制,可以使用sql_slave_skip_counter这个变量来忽略错误将其排除 2.如果发生了较大的错误,可以考虑使用reset slave的方法重新配置从服务器来恢复错误 以下演示如何使用这两种方法解决错误,及相关操作的详细说明 reset slave的使用方法 环境准备搭建主从同步 主节点配置 1.修改配置文件 [[email protected] ~]#

今天用pro安装nginx+php+mysql出现问题的解决方法

今天用pro安装nginx+php+mysql出现问题的解决方法 by 伍雪颖 dyld: Library not loaded: @@[email protected]@/openssl/1.0.1h/lib/libcrypto.1.0.0.dylib Referenced from: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib Reason: image not found 解决方法:重装openssl Starting MySQL . ERR

错误:“Cannot load JDBC driver class &#39;com.mysql.jdbc.Driver”的解决方法

"Cannot load JDBC driver class 'com.mysql.jdbc.Driver " 表示没有JDBC连接MySql的驱动包,因此需要手动添加驱动包到WEB-INF目录下的lib目录中. 解决方法: 从网上下载mysql-connector-java.jar,将其放到"D:\workspace\my-web\src\main\webapp\WEB-INF\lib"目录下,即可解决上述问题. 错误:"Cannot load JDBC

mysql error nr.1045 解决方法

源地址:http://yanshuaijun.2010.blog.163.com/blog/static/362411622011102443056225/ 主题:mysql error nr.1045 解决方法 2011-11-24 16:30:56|  分类: mysql|举报|字号 订阅 1.进入cmd手动停止mysql服务:net stop mysql. 2.修改C:\Program Files\MySQL\MySQL Server 5.1\ 目录下的my.ini文件,在[mysqld]

c#写入Mysql中文显示乱码 解决方法 z

mysql字符集utf8,c#写入中文后,全部显示成?,一个汉字对应一个? 解决方法:在数据库连接字符串中增加字符集的说明,Charset=utf8,如 MySQLConnection con = new MySQLConnection("server=127.0.0.1;uid=root;pwd=;database=test;Charset=utf8"); 搞定 c#写入Mysql中文显示乱码 解决方法 z,布布扣,bubuko.com

mysql日常错误信息解决方法:InnoDB: and force InnoDB to continue crash recovery here.

今天早上上班来打开环境,mysql报了这个错误,猜到的原因应该是昨天晚上下班没等mysql服务器退出就关闭计算机. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 2014-05-09 09:44:25 4128 [ERROR] InnoDB: Attempted to open a previously opened tablespace. Previous tablespace manage_yunfan/nav_areasource uses space ID: 2 at

windows下忘记mysql root密码的解决方法(转)

windows下忘记mysql root密码的解决方法(转) 分类: 数据库 mysql5.5安装目录为 e:\mysql5.5 问题:开发机器上的mysql root 密码忘记鸟! 通过一番搜索,解决问题步骤下: 1.dos命令行窗口 进入e:\mysql5.5\bin ,停止mysql 服务 e:\mysql5.5\bin>net stop mysql 注意:看看那任务管理器中是否有mysqld.exe进程,如有,kill them all. 2. 以不检查权限的方式启动mysql e:\m

mybatis之The expression &#39;oredCriteria&#39; evaluated to a null value的解决方法

<if test="example!= null"> <include refid="Example_Where_Clause" /> </if> 原因:执行过程中,显示在使用example的时候,里面的criteria为null:将上面的XML用下面替换 <if test="_parameter != null" > <include refid="Update_By_Exampl