菜鸟提问:查询的SQL语句怎么写?

pianzhouzi 2004-04-28 03:59:14
一个表中有7个字段,现要根据7个字段里的任意若干个字段进行查询(就是说查询条件不一定),这样的SQL语句该怎么写?谢谢
...全文
43 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
fenght2004 2004-04-28
  • 打赏
  • 举报
回复
一段刚写的代码,还没有调试过,请参考

procedure TForm1.Button1Click(Sender: TObject);
var
sqlstr:String;
s:String; //条件字符串
begin
sqlstr:='select * from tablename';

s:='';
if Edit1.Text<>'' then s:=s+' ID='''+Edit1.Text+''' and';
if Edit2.Text<>'' then s:=s+' NAME='''+Edit2.Text+''' and';
if Edit3.Text<>'' then s:=s+' ADDRESS='''+Edit3.Text+''' and';
{... 其他4个条件类似}

if s<>'' then
begin
s:=copy(s,1,length(s)-4); //去掉最后一个and
sqlstr:=sqlstr+' where'+s;
end;
query1.Close;
query1.SQL.Clear;
query1.SQL.Text:=sqlstr;
query1.Open;
end;
jinjazz 2004-04-28
  • 打赏
  • 举报
回复
是的
pianzhouzi 2004-04-28
  • 打赏
  • 举报
回复
如果用户一个值都不输入就查询的话,是不是会得到整张表的内容呢?
---------
我要的就是这个效果。如果不要这样相信也很好解决的。
hewei2003 2004-04-28
  • 打赏
  • 举报
回复
to jinjazz(我是jin)
如果用户一个值都不输入就查询的话,是不是会得到整张表的内容呢?
pianzhouzi 2004-04-28
  • 打赏
  • 举报
回复
豁然开朗。我真是笨。谢谢
hewei2003 2004-04-28
  • 打赏
  • 举报
回复
组合SQL,比如:
select * from 表名 where 1=0 or (ID=值 and 地址='值' and 其他字段...)

Email:cqhw2003@126.com
jinjazz 2004-04-28
  • 打赏
  • 举报
回复
with query1 do begin
sql.add('select * from xxx where 1=1');
if edit1.text<>'' then
sql.add('and id='''+edit1.text+'''');
if edit2.text<>'' then
sql.add('and name='''+edit2.text+'''');
//...以此类推
close;
open;
end;
soaringsouth 2004-04-28
  • 打赏
  • 举报
回复
checkbox与edit或者combobox等组合
pianzhouzi 2004-04-28
  • 打赏
  • 举报
回复
详细一点:有ID,名称,地址,电话……等等字段,现在用户要随机输入若干字段的查询条件,达到查询目的,该怎么搞?(用户如果输入了ID,地址,则根据这两项查,以此类推,用户输入什么,就用什么查)

2,498

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧