Mysql2::错误:操作数应包含 1 列:

标签 mysql ruby-on-rails duplicates

我正在尝试选择 Rails Controller 中的所有重复属性。我想按街道比较每个属性的地址并将结果返回给我以显示在页面上。

我尝试过的:

@conflicts = Property.where("SELECT street, COUNT(street) FROM properties GROUP BY street HAVING COUNT(street) >1")

这是我收到的错误:

Mysql2::Error: Operand should contain 1 column(s): SELECT `properties`.* FROM `properties` WHERE (SELECT street, COUNT(street) FROM properties GROUP BY street HAVING COUNT(street) >1)

我知道有人提出了许多与我的问题类似的问题,但我需要返回整个属性数组及其所有信息,而不仅仅是街道,也不仅仅是重复项的数量。谢谢!

更新:还尝试过:

@conflicts = Property.where("SELECT street FROM properties GROUP BY street HAVING count(street) > 1")

这给了我:

Mysql2::Error: Subquery returns more than 1 row: SELECT `properties`.* FROM `properties` WHERE (SELECT street FROM properties GROUP BY street HAVING count(street) > 1)

我想要的是一张有这样的 table

property_id |         street |    state |   zip
          1 | 123 test drive | Arkansas | 12345
          2 | 123 test drive |     Iowa | 45632
          3 | 999 not avenue | Delaware | 55556

它返回属性 1 和 2。

最佳答案

我不知道 RoR 查询生成器语法,但您想要的原始查询是:

SELECT street, COUNT(*)
FROM properties
GROUP BY street
HAVING COUNT(*) > 1

关于Mysql2::错误:操作数应包含 1 列:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51484567/

相关文章:

ruby-on-rails - active_admin 和 has_one 关联

ruby-on-rails - Uncaught ReferenceError : Foundation is not defined

php - 当 $variable 重复但主键唯一时回显行

python - Pandas :删除重复但连续的行并将第一行保留在组中

php - 在 PHP MYSQL 中使用 Google Chart

php - MySQL 或 PHP 将行动态转换为列

SQL:根据另一个表的MIN批量更新表?可能很容易,但卡住了

mysql - 为什么这个 MySQL 查询可以在我的生产服务器上运行,但不能在我的本地测试服务器上运行?

ruby-on-rails - 如何正确读取,更重要的是,如何写入 ruby​​ on rails 中的 3 表连接

php - 插入前检查重复项