多條件模糊查詢功能是所有信息系統(tǒng)的標配功能赁项,其核心原理在于如何有效的建立模糊查詢的SQL語句葛躏。這里把以前經(jīng)手的項目中的局部代碼整理并分享出來悠菜,供大家參考復(fù)用舰攒,歡迎Copy&Paste悔醋。
簡要說明
接下來展示的Demo有5個數(shù)據(jù)字段作為模糊查詢的條件,任意輸入就可以進行多條件組合模糊查詢芬骄。
代碼部分
以下代碼在Delphi7下正常運行。需要注意2點:
- 當全部查詢條件為空值時账阻,要對sql語句進行默認查詢處理蒂秘;
- 組合sql時的轉(zhuǎn)譯符號的處理淘太;
procedure TForm_Main.cxButton_QueryClick(Sender: TObject);
var
sSQL : String;
begin
sSQL := 'SELECT * FROM goods WHERE 1=1';
// if all condition is blank, query Top 100
if (cxTextEdit_type.Text = '') and (cxTextEdit_brand.Text = '')
and (cxTextEdit_material.Text = '') and (cxTextEdit_size.Text = '')
and (cxTextEdit_name.Text = '') then
begin
sSQL := 'SELECT * FROM goods LIMIT 100';
end
else if cxTextEdit_type.Text <> '' then
begin
sSQL := sSQL + ' AND type LIKE ''%' + cxTextEdit_type.Text + '%''';
end;
if cxTextEdit_brand.Text <> '' then
begin
sSQL := sSQL + ' AND brand LIKE ''%' + cxTextEdit_brand.Text + '%''';
end;
if cxTextEdit_material.Text <> '' then
begin
sSQL := sSQL + ' AND material LIKE ''%' + cxTextEdit_material.Text + '%''';
end;
if cxTextEdit_size.Text <> '' then
begin
sSQL := sSQL + ' AND size LIKE ''%' + cxTextEdit_size.Text + '%''';
end;
if cxTextEdit_name.Text <> '' then
begin
sSQL := sSQL + ' AND name LIKE ''%' + cxTextEdit_name.Text + '%''';
end;
......
end;
參考資料
這篇 《實現(xiàn)多條件模糊查詢SQL語句》講得十分詳細,我就不多重復(fù)了蒲牧,大家比對看吧。
PS:最佳實踐就是多演示少碼字造成,哈哈~