博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mybatis
阅读量:6469 次
发布时间:2019-06-23

本文共 2295 字,大约阅读时间需要 7 分钟。

1.mysql 更新操作误用and

出处:https://www.jianshu.com/p/b455962b68a1

今天一个开发反馈update某行但不生效,场景如下:

mysql> select * from test;   +------+------+ | c1   | c2   | +------+------+ |    0 | a | +------+------+

他想将c1列的值改成1、c2的值改成'b',然后用了如下sql:

update test set c1=1 and c2='b' where c1=0;
可以发现这个sql写法是错误的,正确写法应该是:
update test set c1=1,c2='b' where c1=0;
但第一个错误的sql运行没报错,因为被MySQL理解成:

update test set c1=(1 and c2='b') where c1=0;   => update test set c1=(1 and 0) where c1=0; ==> update test set c1=0 where c1=0;

所以错误的sql相当啥都不做,但不仔细观察and应该改成逗号,还会觉得蛮诡异呢~

2.mybatis 批量删除

int delete(String[] usernos);
DELETE FROM USER    WHERE     USERNO IN
#{userno,jdbcType.VARCHAR}

3.mybatis 更新

1 
2 UPDATE USER3
4
        LOGINNAME = #{loginName,jdbcType=VARCHAR},       
5
        PASSWORD = #{password,jdbcType=VARCHAR},       
6
7 WHERE8 USERNO = #{userno,jdbcType=VARCHAR}9

4.other

1 
2 13 14 25 26 34 35
36 INSERT INTO USER37 (USERNO,IDTYPE,IDNUMBER,STATUS,BANKNO,LOGINNAME,PASSWORD,GENDER)38 VALUES39 (#{userno,jdbcType=VARCHAR},40 #{idType,jdbcType=CHAR},41 #{idNumber,jdbcType=VARCHAR},42 #{status,jdbcType=CHAR},43 #{bankNo,jdbcType=VARCHAR},44 #{loginName,jdbcType=VARCHAR},45 #{password,jdbcType=VARCHAR},46 #{gender,jdbcType=CHAR})47
48

 

 

转载于:https://www.cnblogs.com/But-you/p/10274599.html

你可能感兴趣的文章
codeblocks快捷键
查看>>
基于HTML5的WebGL设计汉诺塔3D游戏
查看>>
WPF资料链接
查看>>
过滤DataTable表中的重复数据
查看>>
再次更新
查看>>
mysql的数据类型int、bigint、smallint 和 tinyint取值范围
查看>>
移动铁通宽带上网设置教程
查看>>
Python算法(含源代码下载)
查看>>
利用Windows自带的Certutil查看文件MD5
查看>>
通过原生js添加div和css
查看>>
简单的导出表格和将表格下载到桌面上。
查看>>
查询指定名称的文件
查看>>
AJAX POST&跨域 解决方案 - CORS
查看>>
开篇,博客的申请理由
查看>>
Servlet 技术全总结 (已完成,不定期增加内容)
查看>>
[JSOI2008]星球大战starwar BZOJ1015
查看>>
centos 7 部署LDAP服务
查看>>
iOS项目分层
查看>>
IntelliJ IDEA 注册码
查看>>
String字符串的截取
查看>>