将此MySQL查询转换为PyGreSQL

时间:2011-03-28 13:14:19

标签: mysql sql postgresql

我正在开发一个使用mysql函数XOR(^)和BIT_COUNT()的Ruby应用程序。但是我现在需要在运行PyGreSQL的Heroku上运行应用程序。

我找不到任何可以帮助我的PyGreSQL文档。

所以任何人都可以翻译这个mysql查询,以便在pygresql数据库上执行时能够正常工作吗?

SELECT * FROM "photos" WHERE BIT_COUNT(phash ^ 2061756291569501157) <= 15

pygresql给我错误

ERROR:  operator does not exist: text ^ bigint

感谢。

1 个答案:

答案 0 :(得分:2)

SELECT  *
FROM    photos
WHERE   (
        SELECT  SUM(((phash::bigint # 2061756291569501157) >> bit) & 1)
        FROM    generate_series(0, 63) bit
        ) <= 15