介绍
select id,convert(with_costs,SIGNED) as with_costs from table_a;使用convert()函数可以完成数据类型的转换
在使用DIH(Data Import Handler)创建索引时,mysql中的tinyint类型的字段会被转换为java的boolean类型,值为true、false,很多情况下这是不符合要求的。如果要保持数字类型,需要在sql语句中转换
例如:
select id,convert(with_costs,SIGNED) as with_costs from table_a;
解释:
convert()函数可以完成数据类型的转换,with_costs是要转换的字段名,tinyint类型,SIGNED是要转换的目标类型,这里记得写上as XXX即字段的新别名,经测试不写as XXX转换无效。
注:可以转换的类型是有限制的。这个类型可以是以下值其中的一个:
二进制,同带binary前缀的效果 : BINARY
字符型,可带参数 : CHAR()
日期 : DATE
时间: TIME
日期时间型 : DATETIME
浮点数 : DECIMAL
整数 : SIGNED
无符号整数 : UNSIGNED
另外,这个问题从solr3.x就存在了,现在在5.4.1版本上测试,问题依旧。
参考
本文为原创,如果您当前访问的域名不是surenpi.com,请访问“素人派”。
查看原文:http://surenpi.com/2017/07/04/solr%e5%af%b9mysql%e4%b8%adtinyint%e5%ad%97%e6%ae%b5%e7%9a%84%e5%a4%84%e7%90%86%e6%96%b9%e6%b3%95/