h2数据库按位操作(&;)无效语法MySql
h2数据库错误的逐位操作(h2数据库按位操作(&;)无效语法MySql,mysql,bit-manipulation,h2,bitwise-operators,Mysql,Bit Manipulation,H2,Bitwise Operators,h2数据库错误的逐位操作(&、&&、|、| |)会创建无效语法错误 Connection con=jdbcCon.getConnection(); PreparedStatement statement = con.prepareStatement("SELECT * FROM cars WHERE status & 128"); //this version works -> BITAND(`status`,128) "); 我用尝试了jdbc连接;MODE=MySQL并且没有
&、&&、|、| |
)会创建无效语法错误
Connection con=jdbcCon.getConnection();
PreparedStatement statement = con.prepareStatement("SELECT * FROM cars WHERE status & 128");
//this version works -> BITAND(`status`,128) ");
我用尝试了jdbc连接;MODE=MySQL
并且没有它。SQL查询在MySQL数据库中是正确的。
位运算符可以工作,但我想应该支持位运算符
Exception:
org.h2.jdbc.JdbcSQLException: General error SQL statement: SELECT * FROM cars WHERE status & 128 [50000-181]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
Caused by: java.lang.ClassNotFoundException: com.vividsolutions.jts.geom.CoordinateSequenceFilter
POM:com.h2数据库 氢 1.4.181 测试
H2中的&&运算符保留用于边界框交点测试。这就是H2尝试加载JTS拓扑套件库的原因 对于按位操作,必须使用以下H2函数:
&
或|
。实际上,|
是SQL中的字符串连接运算符。布尔运算符是和
和或
。你说的是位运算符。我将主题改为在SQL语句中添加pom生成语法错误,但按位操作仍不能按预期工作。我也发现它可能还没有实现。这个问题似乎是相关的,仍然没有提出解决方案。所以MySQL模式不会改变(理解)那个查询,所以它不是完全MySQL兼容的?这是否意味着所有生产查询都必须重写才能兼容?H2的解析器需要修改才能管理&^运算符。您可以在这里看到解析器on操作符特性的一部分。为了添加此功能请求,您应该在H2 google group上发布。