Re: [SQL ] MySQL搜尋所有欄位
※ 引述《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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 3 篇):