繁体   English   中英

HSQL和Bitwise操作?

[英]HSQL and Bitwise operations?

我正在编写一个系统应用程序,必须集成到现有的旧架构中。 为此,我必须访问表中的位掩码字段; 像这样的事情:

SELECT * FROM directory WHERE (status & 64) | (status & 256);

我们现有的系统运行在MySQL上 - 我们有一个类似于上面的声明,工作得很好。

但是,在我必须与现有系统集成的新应用程序中,我在单元测试中使用了嵌入式HSQL。 而对于我的生活,我无法弄清楚如何在HSQL中进行按位操作。 此外,即使我能够弄清楚,我开始担心两个SQL引擎之间没有兼容的单个语句。

关于如何解决这个问题的任何提示? 目前我在想我只需选择状态!= 0(当然限制结果集)然后使用java来挑选我想要的特定匹配状态的那些我是定位。 让人惊讶。

这些操作是使用HSQLDB中的函数完成的。

http://hsqldb.org/doc/2.0/guide/builtinfunctions-chapt.html#bfc_numeric_functions

请参见BITOR,BITXOR,BITAND,BITNOT,BITANDNOT功能。

在SQL方言中,按位运算符并不常见。 MySQL是一个例外,而不是常态。

我从来没有找到更好的解决方案,而只是努力将我的嵌入式数据库从HSQL替换为MYSQL。

我也花时间写出更好的单元测试; ie:针对实际数据库运行我的数据库逻辑,但所有其他层使用模拟数据库逻辑。

这就是我的需要......对你在生产中使用的同一个数据库运行你的DDL测试,并针对DDL模拟运行所有其他逻辑。

对于后代,这是我用于构建嵌入式MYSQL的内容:http: //zhentao-li.blogspot.com/2013/06/using-embedded-mysql-database-for-unit.html?m = 1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM