Delphi多条件模糊查询的实现


多条件模糊查询功能是所有信息系统的标配功能,其核心原理在于如何有效的建立模糊查询的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:最佳实践就是多演示少码字,哈哈~

阅读原文

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 原文:https://my.oschina.net/liuyuantao/blog/751438 查询集API 参...
    阳光小镇少爷阅读 3,852评论 0 8
  • 1. 简介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的...
    笨鸟慢飞阅读 5,622评论 0 4
  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 5,446评论 0 9
  • Django 1.8.2 文档Home | Table of contents | Index | Modules...
    轩辕小爱阅读 2,384评论 0 2
  • 大雪无雪 所以大雪与大雪无关 就像此刻 我盘膝而坐 为文字安排一场命运 你在一本书中 找寻门和窗的默契 月光和云朵...
    杨昊田阅读 667评论 57 87