mysql - 将此 MySQL 查询转换为 PyGreSQL

标签 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

谢谢。

最佳答案

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

关于mysql - 将此 MySQL 查询转换为 PyGreSQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5459487/

相关文章:

sql - 连接小时和分钟列以十进制格式显示 SQL 查询

sql - 在查询中提前(或重新排序)重用派生列 - 这是有效的 ANSI SQL 吗?

c# - 在 Asp.net 5 (vnext) 中使用 Postgres 和 Npgsql

postgresql - Postgres 9.5 : Non-zero xmax of a row refenced as a foreign key

mysql - 避免查询中的重复值

mysql 按多列中的值进行分组

mysql - 验证重复记录

php - AES 256 加密,PHP/MySQL 与 Swift 的区别

sql - 在 PostgreSQL 中向日期添加月份显示语法错误

mysql - 可以用 ruby​​ 编写 MySQL 存储过程吗?