本周问题记录mysql容易忽略的问题

第一个问题,停止tomcat的时候停不掉,报错如下:
Error occurred during initialization of VM

问题发现原因是停止的时候,服务器内存不足导致的。7.5G的服务器,我设置了6G。系统占用了一部分导致停止内存不足。

第二个问题:

全角和半角的问题,解决办法是把全角转为半角。

	/**
	 * 将字符串中的全角字符转为半角。
	 * <br/><br/>
	 * 全角空格为12288,半角空格为32 其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248
	 * @param src 要转换的包含全角的任意字符串
	 * @return 转换之后的字符串
	 */
	public static String toSemiangle(String src) {
		char[] c = src.toCharArray();
		for (int index = 0; index < c.length; index++) {
			if (c[index] == 12288) {// 全角空格
				c[index] = (char) 32;
			} else if (c[index] > 65280 && c[index] < 65375) {// 其他全角字符
				c[index] = (char) (c[index] - 65248);
			}
		}
		return String.valueOf(c);
	}

 

问题三:
查询玩家:たくみ结果查询出2条记录。SQL如下,原因是:数据库安装是是默认使用的不区分大小写,解决办法是在查询的时候做处理区分大小写。加binary 解决。(日文的平假名与片假名)

SELECT * FROM _player_name_log WHERE pname ='たくみ';

 

 

Mysql默认查询是不分大小写的,可以在SQL语句中加入 binary来区分大小写;

BINARY不是函数,是类型转换运算符,它用来强制它后面的字符串为一个二进制字符串,可以理解为在字符串比较的时候区分大小写。

SELECT * FROM player_name_log WHERE binary pname ='たくみ';

 

 

问题四:(补偿)

mysql in 排序功能。

SELECT * FROM 表名 WHERE 字段 IN (数据,数据) ORDER BY  FIELD(字段,数据,数据);

 


 

猜你喜欢

转载自justdo2008.iteye.com/blog/2222134