Re: [SQL ] MySQL搜尋所有欄位

看板Database作者 (三天)時間15年前 (2010/09/19 14:15), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/3 (看更多)
※ 引述《kalecgos0616 (.)》之銘言: : 我的DB是MySQL 5.0.77,假如我要搜尋一個欄位的話是 : "SELECT * FROM Table WHERE Attribute1 LIKE '%q%'" : 兩個欄位的話是 : "SELECT * FROM Table WHERE : Attribute1 LIKE '%q%' OR : Attribute2 LIKE '%q%'" : 那N個欄位不就要寫很長了嗎? : 有沒有比較簡單的寫法? 之前類似的做法是寫一個專案專門產生Sql語法 各自有不同的Function去產生語法的各部分(EX: JOIN, WHERE, ORDER) 而你的需求可以再配合使用Flags把欄位用二的次方編號 Ex: public enum TableColumn { Attribute1 = 2, Attribute2 = 4, Attribute3 = 8, Attribute4 = 16 } 在要求的時候提供 變數為搜尋條件 還有欄位OR起來之後的數字 Function再由該OR起來的數字,拆解成對應的 欄位Array (string[]) 然後跑迴圈產生出 (欄位1 LIKE '%value%' OR 欄位2 LIKE '%value%'.....) 接著回傳組好的WHERE String 之後在看你其他程式要怎麼運用 只要把產生語法的架構建立好,這個Function可以套用在日後所有需求的不同表單 ps: 我欄位的Enum是用程式跑資料庫自動產出 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.249.140.101
文章代碼(AID): #1CbQfpQQ (Database)
文章代碼(AID): #1CbQfpQQ (Database)