Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
h2数据库按位操作(&;)无效语法MySql_Mysql_Bit Manipulation_H2_Bitwise Operators - Fatal编程技术网

h2数据库按位操作(&;)无效语法MySql

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并且没有

h2数据库错误的逐位操作(
&、&&、|、| |
)会创建无效语法错误

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中的字符串连接运算符。布尔运算符是
。你说的是位运算符。我将主题改为在SQL语句中添加pom生成语法错误,但按位操作仍不能按预期工作。我也发现它可能还没有实现。这个问题似乎是相关的,仍然没有提出解决方案。所以MySQL模式不会改变(理解)那个查询,所以它不是完全MySQL兼容的?这是否意味着所有生产查询都必须重写才能兼容?H2的解析器需要修改才能管理&^运算符。您可以在这里看到解析器on操作符特性的一部分。为了添加此功能请求,您应该在H2 google group上发布。