今天在编写登录模块时,碰到一个隐蔽的坑,故记录一番 在使用Node.js的mysql模块的query方法时,查询语句使用了 `select password from login where name=${name}` 注:name为传入的一个字符串 而非传统的 'select password from login where name=' + name 当然,这个不是这个坑触发的关键,关键在于,我以为JavaScript的字符串会自行在外部包裹一个双引号或单引号,然而事实上并非如此 当我在$…
说明:在MySQL查询时要区分大小写会涉及到两个概念character set和collation,这两个概念在表设计时或者在查询时都可以指定的,详细参考:http://www.cnblogs.com/EasonJim/p/8128196.html MySQL查询默认是不区分大小写的 如: select * from some_table where str=‘abc'; select * from some_table where str='ABC'; 得到的结果是一样的,如果我们需要进行区分…
MySQL查询时,查询结果如何按照where in数组排序 在查询中,MySQL默认是order by id asc排序的,但有时候需要按照where in 的数组顺序排序,比如where in的id查询数组为[922,106,104,103],正常情况查询出来的结果顺序为[103,104,106,922],这可能不是我们想要的结果, 我们期望查出来的结果顺序与where in的顺序一致,这里介绍两个方式: 1.使用find_in_set函数: select * from table where…
转载自:http://snowolf.iteye.com/blog/1681944 平时很少会考虑数据存储需要明确字符串类型字段的大小写,MySQL默认的查询也不区分大小写.但作为用户信息,一旦用户名重复,又会浪费很多资源.再者,李逵.李鬼的多起来,侦辨起来很困难.要做到这一点,要么在建表时,明确大小写敏感(字段明确大小写敏感).如果通盘数据库所有字段都需要大小写敏感,不如在字符集设置时做好调整.不过,通常不建议这么做. 如果跟我一样,数据库已经在线上跑了,一个表上百万条数据,做字段类型变更有可…
在创建MySQL数据库时,下面这些参数可供我们选择:*_bin: 表示的是binary case sensitive collation,也就是说是区分大小写的 *_cs: case sensitive collation,区分大小写 *_ci: case insensitive collation,不区分大小写 默认的选择是不区分大小写的 但有时我们的查询中的确需要明确的区分大小写, 这里介绍一种方法:在查询中使用binary关键字 select  * from  table_name whe…
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/zyb_icanplay7/article/details/24981791 平时非常少会考虑数据存储须要明白字符串类型字段的大写和小写,MySQL默认的查询也不区分大写和小写.但作为用户信息.一旦username反复,又会浪费非常多资源.再者,李逵.李鬼的多起来.侦辨起来非常困难. 要做到这一点,要么在建表时.明白大写和小写敏感(字段明白大写和小写敏感). 假设通盘数据库全部字段都须要大写和小写敏…
一次偶然的机会,发现在登陆验证时,改变用户名的大小写,同样可以登录成功,这是由于,当时使用的mysql数据库对大小写不敏感,查询时总是能查询到数据.一番查找资料,给出的原因是:在创建数据库的时候,选择了utf8_general_ci排序规则. 创建数据库时,需要同时选择字符集和排序规则,字符集大家都知道是怎么回事,那排序规则干嘛用的呢? 排序规则:是指对指定字符集下不同字符的比较规则.其特征有以下几点: 1. 两个不同的字符集不能有相同的排序规则 2. 两个字符集有一个默认的排序规则 3. 有一…
自己用 mysql 很多次的,然后又是主玩nodejs的.专门写一篇文章来说说nodejs连接mysql数据库.在使用之前,请检查计算机是否具有一下环境! nodejs 执行环境. mysql数据库环境(下载地址). navicat 连接 mysql 数据库的图形化操作软件.(非必要) 进入正题 mysql 增删改查 首先,我们去下载一个叫mysql的依赖包,这个包就是通过 nodejs 代码去连接数据库,从而操作数据库. 创建一个文件夹,快速生成pakeage.json文件 D:\nodejs…
为了能在查询时忽略字段大小写,又不想修改数据表的属性配置,就在SQL语句中做了修改.结果在alibaba druid 执行时报错 com.alibaba.druid.sql.parser.ParserException: syntax error, error in :'ame  collate 'utf8mb4_general_ci' f', expect RPAREN, actual LITERAL_CHARS pos 166, line 1, column 147, token LITER…
示例代码中的mysql版本 2.14.1 参考代码 /** * 测试mysql连接 */ var mysql = require('mysql'); var connection = mysql.createConnection({ host : 'localhost', //服务器 user : 'root', //用户名 password : 'root', //密码 database : 'mysql' //数据库 }); connection.connect(function(err)…