搜尋大對決 Find, Find_by, Where

更新於 發佈於 閱讀時間約 2 分鐘

Find

輸入一個 id 參數後,尋找相對應的一筆資料。

@article = Article.find(params[:id])

在 SQL 的部分:

raw-image

如果 find 找不到相對應的資料時,會跳出兇殘的錯誤訊息:

raw-image

Find_by

輸入一個或多個參數後,找到相對應的一筆資料。

@article = Article.find(id: params[:id], title: params[:title])

在 SQL 的部分:

raw-image

如果 find_by 找不到相對應的資料時,會跳出比較溫和的 undefined method 訊息,並回傳 nil:

raw-image

在 find_by 後面加驚嘆號,find_by! 也會產生跟 find 一樣的錯誤訊息,但仍能帶入多個參數。

Where

輸入一個或多個參數後,找到相對應的多筆資料。

@article = Article.where(params[:id])

這個 where 就是 SQL 語法的 where,所以參數也能使用 SQL 語法。

此外,參數也可以是 String / Array / Hash 當搜尋條件。


find vs find_by

1. 條件數量不同,find 只能有一個,find_by 可以有很多個。

2. 錯誤訊息不同 ( 但是 find 可以加驚嘆號,就等同 find )

find 系列 vs where 系列

1. find 系列只會有一筆資料,where 會找出符合搜尋條件的所有資料

2. where 可以使用 SQL 語法當作搜尋條件



Reference

https://ithelp.ithome.com.tw/articles/10225325


留言
avatar-img
留言分享你的想法!
avatar-img
Mike的沙龍
1會員
13內容數
Mike的沙龍的其他內容
2022/08/13
在 Rail 的 MVC 架構中,M 是負責驗證與邏輯、以及轉譯向資料庫溝通的角色; C 是負責資料的搬運,搬往 M 或 V; V 則是負責畫面的呈現、及使用者與資料的互動,並將請求送往C,接著得到 C 送回來的資料。 form_tag form_for form_with
2022/08/13
在 Rail 的 MVC 架構中,M 是負責驗證與邏輯、以及轉譯向資料庫溝通的角色; C 是負責資料的搬運,搬往 M 或 V; V 則是負責畫面的呈現、及使用者與資料的互動,並將請求送往C,接著得到 C 送回來的資料。 form_tag form_for form_with
2022/08/12
將 Rails 環境帶入 rake 裡,讓 rake 可以使用 Rails 的元素,像是 Model: 如果沒有導入環境給 rake ,rake 就找不到 User ,就沒辦法 new 了。 終端機輸入: 透過回圈,一個指令,產生多筆資料: 更複雜的:
2022/08/12
將 Rails 環境帶入 rake 裡,讓 rake 可以使用 Rails 的元素,像是 Model: 如果沒有導入環境給 rake ,rake 就找不到 User ,就沒辦法 new 了。 終端機輸入: 透過回圈,一個指令,產生多筆資料: 更複雜的:
2022/08/01
在介紹什麼是樂觀鎖、什麼是悲觀鎖之前,我們先來了解一下,這兩個鎖是應用在什麼地方? 資料庫 為了達成這件萬中選一的情況,就必須使用到「鎖」的概念。 悲觀鎖 從字面上來想,可以很清楚的知道,這個鎖是用悲觀來看待資料的寫入。基於對事件的不信任,所採取的行為。 樂觀鎖
2022/08/01
在介紹什麼是樂觀鎖、什麼是悲觀鎖之前,我們先來了解一下,這兩個鎖是應用在什麼地方? 資料庫 為了達成這件萬中選一的情況,就必須使用到「鎖」的概念。 悲觀鎖 從字面上來想,可以很清楚的知道,這個鎖是用悲觀來看待資料的寫入。基於對事件的不信任,所採取的行為。 樂觀鎖
看更多
你可能也想看
Thumbnail
孩子寫功課時瞇眼?小心近視!這款喜光全光譜TIONE⁺光健康智慧檯燈,獲眼科院長推薦,網路好評不斷!全光譜LED、180cm大照明範圍、5段亮度及色溫調整、350度萬向旋轉,讓孩子學習更舒適、保護眼睛!
Thumbnail
孩子寫功課時瞇眼?小心近視!這款喜光全光譜TIONE⁺光健康智慧檯燈,獲眼科院長推薦,網路好評不斷!全光譜LED、180cm大照明範圍、5段亮度及色溫調整、350度萬向旋轉,讓孩子學習更舒適、保護眼睛!
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
魔鬼藏在二分搜尋裡!輸出值代表的意含、題意產生的邊界條件,寫完模板才是挑戰的開始 Orz
Thumbnail
魔鬼藏在二分搜尋裡!輸出值代表的意含、題意產生的邊界條件,寫完模板才是挑戰的開始 Orz
Thumbnail
這篇文章,會帶著大家複習以前學過的二分搜尋法(Binary Search)框架, 並且以二分搜尋法的概念為核心, 貫穿一些相關聯的題目,透過框架複現來幫助讀者理解這個實用的演算法框架。 Binary search 二分搜尋法框架 用途: 在已經排序好的數列中尋找目標值。
Thumbnail
這篇文章,會帶著大家複習以前學過的二分搜尋法(Binary Search)框架, 並且以二分搜尋法的概念為核心, 貫穿一些相關聯的題目,透過框架複現來幫助讀者理解這個實用的演算法框架。 Binary search 二分搜尋法框架 用途: 在已經排序好的數列中尋找目標值。
Thumbnail
題目敘述 題目會給定兩個輸入。 第一個輸入是關鍵字清單products,第二個是使用者輸入的字串searchWord。 要求我們實現關鍵字搜尋建議系統,使用者每輸入一個字元就推薦一次。 推薦時,優先返回字典序(Lecial order)最接近的關鍵字,最多不要超過三個關鍵字。 題目的原文
Thumbnail
題目敘述 題目會給定兩個輸入。 第一個輸入是關鍵字清單products,第二個是使用者輸入的字串searchWord。 要求我們實現關鍵字搜尋建議系統,使用者每輸入一個字元就推薦一次。 推薦時,優先返回字典序(Lecial order)最接近的關鍵字,最多不要超過三個關鍵字。 題目的原文
Thumbnail
題目會給我們一個排序好的陣列,還有一個目標值target 要求我們在陣列中尋找target所在的索引位置。 如果target 不存在,返回-1 題目要求必須在O( log n )對數時間內完成 。
Thumbnail
題目會給我們一個排序好的陣列,還有一個目標值target 要求我們在陣列中尋找target所在的索引位置。 如果target 不存在,返回-1 題目要求必須在O( log n )對數時間內完成 。
Thumbnail
範例句: 假設我們有一段文章以空白隔開的方式來切割詞彙,內容如下: 假設條件為: clauses:[提升,滿意度,問卷] 。 slop:4。 in_order: true ❗ 這裡的Slop代表範圍內不匹配的最大數量,從開始匹配的字詞框到最後加總一併進行計算。 查詢結構會是如此 請問上述條件是否能正
Thumbnail
範例句: 假設我們有一段文章以空白隔開的方式來切割詞彙,內容如下: 假設條件為: clauses:[提升,滿意度,問卷] 。 slop:4。 in_order: true ❗ 這裡的Slop代表範圍內不匹配的最大數量,從開始匹配的字詞框到最後加總一併進行計算。 查詢結構會是如此 請問上述條件是否能正
Thumbnail
本篇主要是介紹MongoDB有哪些進階的索引, 了解原理及功能後, 在應用上才能規劃出更有效率的索引, 而主要會談到以下五個索引類型: 複合索引。 部份索引。 多鍵索引。 全文索引。 TTL索引。 進入到索引類型之前先提醒一下,一個集合的索引數不能超過64個。 限制: 最多只能31個欄位做一組複合索
Thumbnail
本篇主要是介紹MongoDB有哪些進階的索引, 了解原理及功能後, 在應用上才能規劃出更有效率的索引, 而主要會談到以下五個索引類型: 複合索引。 部份索引。 多鍵索引。 全文索引。 TTL索引。 進入到索引類型之前先提醒一下,一個集合的索引數不能超過64個。 限制: 最多只能31個欄位做一組複合索
Thumbnail
假設有天你要在電話簿找一個K開頭的人,或是O開頭的人 你並不會從A開始找 一定是從最接近的開始找。 二分搜尋是一種演算法 下方是二分搜尋演算法的如何作用 STEP 1 圖一這是一組陣列,由小到大排列,其中我們在這陣列要找的數字是“13”所以我們必須把它存在 searchForNumber 這個變數裡
Thumbnail
假設有天你要在電話簿找一個K開頭的人,或是O開頭的人 你並不會從A開始找 一定是從最接近的開始找。 二分搜尋是一種演算法 下方是二分搜尋演算法的如何作用 STEP 1 圖一這是一組陣列,由小到大排列,其中我們在這陣列要找的數字是“13”所以我們必須把它存在 searchForNumber 這個變數裡
Thumbnail
在上一篇文章中,我們講解了 MongoDB 的基本操作,接下來想講講如何更有效率的查詢想要找的資料 模糊查詢 就是查詢的條件只要部分符合就可以找到了,不用查找的關鍵字完全正確,我們直接來舉個例子比較好理解 先假設有以下這些資料 模糊查詢,查找的資料 item 值內有包含 book 就返回 這樣就會找
Thumbnail
在上一篇文章中,我們講解了 MongoDB 的基本操作,接下來想講講如何更有效率的查詢想要找的資料 模糊查詢 就是查詢的條件只要部分符合就可以找到了,不用查找的關鍵字完全正確,我們直接來舉個例子比較好理解 先假設有以下這些資料 模糊查詢,查找的資料 item 值內有包含 book 就返回 這樣就會找
Thumbnail
Find 輸入一個 id 參數後,尋找相對應的一筆資料。 在 SQL 的部分: 如果 find 找不到相對應的資料時,會跳出兇殘的錯誤訊息: Find_by 輸入一個或多個參數後,找到相對應的一筆資料。 在 SQL 的部分: Where 輸入一個或多個參數後,找到相對應的多筆資料。
Thumbnail
Find 輸入一個 id 參數後,尋找相對應的一筆資料。 在 SQL 的部分: 如果 find 找不到相對應的資料時,會跳出兇殘的錯誤訊息: Find_by 輸入一個或多個參數後,找到相對應的一筆資料。 在 SQL 的部分: Where 輸入一個或多個參數後,找到相對應的多筆資料。
Thumbnail
刷題的時候,我們應該思考的不是「如何回答」而是用科學的方式,根據情境、題目要求進行分析,最後再找出適合的演算法去解決這些問題,同時也可以反思自己是否缺少對某些知識的理解。
Thumbnail
刷題的時候,我們應該思考的不是「如何回答」而是用科學的方式,根據情境、題目要求進行分析,最後再找出適合的演算法去解決這些問題,同時也可以反思自己是否缺少對某些知識的理解。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News