2016-10-11 18 views
2

データベースから正しいデータを取得する際に問題があります。データベースから特定のデータを取得

私は3列とPRODUCTS表があります。

id, Name and Category 

をAND、私は3列のデータテーブルがあります。今

id, Name, products_id(F.K) 

を、私は私のProductsテーブルに付き一つのエントリがあるとし値

(1, "iPhone 6S", "Mobiles") 

そして、データテーブルには複数の名前のエントリがあります。

iPhone 6s 16GB, 
iPhone 6s 32GB, 
iPhone 6s Plus 16GB, 
iPhone 6s Plus 32GB 

など。今度はiPhone 6sのみで、iPhone 6s Plusではありません。

以下のコードでは、商品名とDATAの名前が一致する商品IDを更新しています。これを行うことで、私は両方を取得していますiPhone 6siPhone 6s Plus

私はほしいと思っていますiPhone 6s

上記のコードを使用して、私はiPhone 6sとiPhone 6s Plusの前でproducts_idを取得します。私はそれをiPhone 6s Plusの前に置いてはいけません。それを行う他の方法も役立ちます。どうもありがとう!

+1

Data.where( "名前REGEXP?"、 'your_regex_here') – bkunzi01

答えて

0

名前に正確に一致させたい場合は、好きなものではなく完全な文字列を検索します。

name = Product.where(id: 1).pluck(:Name) 
Data.where(Name: name).updated_all(products_id: 1) 
+0

これは "iPhone 6S 16ギガバイト" のような私が持っているいくつかのエントリでは、唯一の完全な文字列 "iPhone 6S" と一致します –

関連する問題