作者ThreeDay0905 (三天)
看板Database
标题Re: [SQL ] MySQL搜寻所有栏位
时间Sun Sep 19 14:15:13 2010
※ 引述《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