2016-10-11 14 views
2

Ich habe Probleme beim Abrufen der korrekten Daten aus der Datenbank.Bestimmte Daten aus der Datenbank abrufen

ich eine Tabelle PRODUCTS mit 3 Spalten:

id, Name and Category 

und, wie ich mit 3 Spalten einer Datentabelle haben:

id, Name, products_id(F.K) 

Nun nehme ich in meiner Tabelle Artikel einen Eintrag haben mit Werte

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

und in Datentabelle habe ich mehrere Einträge von Namen:

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

und so weiter. Jetzt möchte ich nur iPhone 6s, nicht iPhone 6s Plus.

Im folgenden Code aktualisiere ich products_id, wo es stimmt Name von Produkten mit Name von DATA. Dadurch bekomme ich sowohl iPhone 6s als auch iPhone 6s Plus

Ich möchte nur iPhone 6s.

Jetzt mit dem obigen Code bekomme ich Products_id vor iPhone 6s und iPhone 6s Plus. Ich möchte nicht, dass es vor dem iPhone 6s Plus platziert wird. Jeder andere Ansatz dazu kann ebenfalls hilfreich sein. Danke vielmals!

+1

Data.where ("name REGEXP?", 'your_regex_here') – bkunzi01

Antwort

0

Wenn Sie genau nach dem Namen suchen möchten, suchen Sie nach der vollständigen Zeichenfolge und nicht nach einem Gleichen. nur, In einigen Einträgen Ich habe wie "iPhone 6s 16GB"

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

Dies wird vollständige Zeichenfolge "iPhone 6s" entsprechen –

Verwandte Themen