Delphi多条件模糊查询的实现

2019-11-17  本文已影响0人  hanhandog

多条件模糊查询功能是所有信息系统的标配功能,其核心原理在于如何有效的建立模糊查询的SQL语句。这里把以前经手的项目中的局部代码整理并分享出来,供大家参考复用,欢迎Copy&Paste。

简要说明

接下来展示的Demo有5个数据字段作为模糊查询的条件,任意输入就可以进行多条件组合模糊查询。


代码部分

以下代码在Delphi7下正常运行。需要注意2点:

  1. 当全部查询条件为空值时,要对sql语句进行默认查询处理;
  2. 组合sql时的转译符号的处理;
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;

参考资料

这篇 《实现多条件模糊查询SQL语句》讲得十分详细,我就不多重复了,大家比对看吧。

PS:最佳实践就是多演示少码字,哈哈~

阅读原文

上一篇下一篇

猜你喜欢

热点阅读