當我們有很多筆的條件要對資料庫進行搜尋時,常常會用到下列的語法
SELECT * FROM Member WHERE accunt in ( 'Tom', 'John', 'May' )
在上述語法 IN 的搜尋條件中,有 Tom、John、May 三個帳號條件,資料量少的話,還可以一筆一筆的在帳號的前後加上單引號及後面加上逗號,可是當你遇到要一次查詢50個帳號的情況,一筆一筆的輸入,應該會耗費不少時間。
以前我都會用 Excel 裡的 CONCATENATE 函式來處理這樣的資料,但是有一天同事教我可以用 NotePad++ 的巨集功能來完成這件事情
我覺得這方式比在 Excel 處理還快速,所以在這裡分享一下
1. 將要處理的搜尋條件貼到 NotePad++,以下圖來看,有 25 筆 (圖中的英文名字是從 google 隨機搜尋到的清單)
2. 因為巨集就是將你的操作紀錄下來,所以先將遊標移到第一筆資料的開始位置,然後按下 NotePad++ 工具列上的巨集按鈕,開始錄製
3. 因為遊標已經在最開頭,也就是第一筆資料的位置,所以請直接用鍵盤,按照下面的鍵盤按鍵順序進行輸入(下方括號中的都是鍵盤的按鍵喔)
「'」→「End」→「'」→「,」→「↓」→「Home」
4. 按照第三步驟做完後,應該會變成如下圖的樣子,第一筆搜尋條件已經加上前後單引號跟最後面的逗號了
5. 確認步驟 4完成後,點選下圖的按鈕停止錄製巨集
6. 錄完之後,剩下的 24 筆資料就可以利用巨集處理啦,先跑一次試試看是否正常
點選下圖的按鈕播放巨集(此時遊標還在第二筆資料的開始位置喔~)
7. 播放巨集後,可以看見第二筆資料也被處理好了,遊標也移動到第三筆資料的開始位置了
8. 驗證巨集沒問題後,接下來就一口氣讓巨集執行到最後一筆資料吧
點選下圖步驟1的按鈕來重複執行巨集,然後在提示視窗中,選擇「執行到檔案結尾」,然後按下執行
9. 執行完成後,可以看到所有的條件都被加上前後單引號以及逗號了,只是要注意的是,最後一筆的搜尋條件,最後面會有個逗號
記得要把這逗號刪除再貼到 SQL 語法中,否則查詢會失敗喔~
(執行完成後,重複執行單一巨集的視窗不會自動關閉,此時按取消即可)
10. 完成上述的步驟,需求已經達到了,只是如果此時關閉 NotePad++ 的話,下次遇到同樣情況,就還要再錄一次巨集
幸好 NotePad++ 有提供儲存巨集的功能,所以我們可以把這次錄好的巨集存下來,下次就可以直接使用了
點選下圖步驟 1 的按鈕,開啟巨集儲存的視窗,在「Name」的輸入欄位中替這次的巨集取一個名字,完成後按下「OK」按鈕
11. 此時把 NotePad++ 關閉,然後再開啟,把未處理的資料再貼上去,在點選「重覆執行單一巨集」的按鈕,就可以在視窗中選擇我們剛剛儲存的巨集了
選取剛剛儲存的巨集,然後選擇執行到檔案結尾後按下執行,就可以看到跟步驟 9 一樣處理完成後的結果了~