多条件模糊查询功能是所有信息系统的标配功能,其核心原理在于如何有效的建立模糊查询的SQL语句。这里把以前经手的项目中的局部代码整理并分享出来,供大家参考复用,欢迎Copy&Paste。
简要说明
接下来展示的Demo有5个数据字段作为模糊查询的条件,任意输入就可以进行多条件组合模糊查询。
代码部分
以下代码在Delphi7下正常运行。需要注意2点:
- 当全部查询条件为空值时,要对sql语句进行默认查询处理;
- 组合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:最佳实践就是多演示少码字,哈哈~
网友评论