请教高手,关于delphi数据库模糊查询!!!!

来源:百度知道 编辑:UC知道 时间:2024/05/17 23:58:39
memo1.Lines.Text:='select * from czpdj where czrwzy='+''''+Edit1.Text+'''';
with adoquery1 do begin
with sql do begin
close;
clear;
adoquery1.sql.Assign(memo1.lines);
end;
open
请问怎样改可以模糊查询?
把“memo1.Lines.Text:='select * from czpdj where czrwzy='+''''+Edit1.Text+''''; ”
改成“memo1.Lines.Text:='select * from czpdj where czrwzy like ''%'+Edit1.Text+'%'''; ”
或"memo1.Lines.Text:='select * from czpdj where czrwzy like '''+'%'+Edit1.Text+'%'+''''; ”
或"memo1.Lines.Text:='select * from czpdj where czrwzy like '+'''%'+Edit1.Text+'%'''; ”
都是输入空结果为表中全部记录,输入某行该字段全部内容结果为该字段其他行所有和本行相同的全部记录。
如一行记录为12345,那么输入:1234;123;12;1;2345;345;45;5,也能找到相应的记录。但是其他的组合方法有时能查到,有时结果却是空,我甚至找不到规律。
急求指教!
比如24;13等可能就查不出来,结果是空.

memo1.Lines.Text:='select * from czpdj where czrwzy='+''''+'%'+Edit1.Text+'%'+''''; ”就可以如一行记录为12345,那么输入:1234;123;12;1;2345;345;45;5,也能找到相应的记录.但不知还有其他问题吗?
你的这种需求需要动态进行智能组合生成语句。sql是不会做这些的,他只能严格按照语法进行搜索。 你只能用 or 语句构造一个条件了。
你要作什么,也就是你这个功能有什么用.?

你的功能其实和百度搜索的智能单词有些相似,你最好到网上找找这方面的算法.如果不是必须的.还是去掉这些功能吧

迷糊不会