前提・実現したいこと
whereメソッドを使って指定した条件のレコードを引っ張りたいです。
DBにMysqlを使用しています。
courtsテーブルには緯度(:latitude)経度(:longitude)のカラムを持つレコードがあります。
発生している問題・エラーメッセージ
Court.where(name: 'test1')のようにnameカラムであれば問題なく抽出できました。
Court.where(latitude: 34.9988)とすると[]が出力されてしまいます。
nameのデータ型はstring、
latitudeのデータ型はfloatです。
該当のソースコード
SQL
1[1] pry(main)> duplicate = Court.group(:latitude).having('count(*)>=2').pluck(:latitude) 2 (0.3ms) SET NAMES utf8, @@SESSION.sql_mode = CONCAT(CONCAT(@@sql_mode, ',STRICT_ALL_TABLES'), ',NO_AUTO_VALUE_ON_ZERO'), @@SESSION.sql_auto_is_null = 0, @@SESSION.wait_timeout = 2147483 3 (0.3ms) SELECT `courts`.`latitude` FROM `courts` GROUP BY `courts`.`latitude` HAVING (count(*)>=2) 4=> [34.9988] 5[2] pry(main)> Court.where(latitude: duplicate) 6 Court Load (0.5ms) SELECT `courts`.* FROM `courts` WHERE `courts`.`latitude` = 34.9988 7=> [] 8[3] pry(main)> Court.where(latitude: 34.9988) 9 Court Load (0.4ms) SELECT `courts`.* FROM `courts` WHERE `courts`.`latitude` = 34.9988 10=> []
###ひとこと
どうかお力を貸してください
回答2件
あなたの回答
tips
プレビュー