select * from users where name like '%' 结果不对

liufeng 2000-08-08 11:24:00
请教高手:
我用 select * from users where name like '%' 从一个表中查找数据,
在该表中name字段有些为空,有些不为空,但上面的语句查询的结果是只出现
不为空的记录。
应用环境:
C++Builder 4.0,
BDE,
ACCESS.
...全文
258 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
liufeng 2000-08-10
  • 打赏
  • 举报
回复
谢谢!
Wingsun 2000-08-09
  • 打赏
  • 举报
回复
不行,不行这么写肯定不行的。
if(Edit1->Text.IsEmpty())
{
Query1->SQL->Clear();
Query1->SQL->Add("Select * from Users");
}
else
{
Query1->SQL->Clear();
Query1->SQL->Add("Select * from Users Where Name Like '"+Edit1->Text+"%'");}
liufeng 2000-08-09
  • 打赏
  • 举报
回复
我的本意是这样:
在Query1->SQL中设置select * from users where name like :v_name,
然后在Form1->Edit1->Text中输入人名查询,如果不输就是全部查询,代码如下:
if(Edit1->Text.IsEmpty())
Query1->ParamByName("v_name")->AsString = '%';
else
Query1->ParamByName("v_name")->AsString = Edit1->Text+'%';
不知以上代码是否正确,请各位高手指教。
sclin 2000-08-08
  • 打赏
  • 举报
回复
你是要选name字段为空的纪录吗?
可以用 select * from users where not (name like '%')
Tyro 2000-08-08
  • 打赏
  • 举报
回复
你用这条语句要达到什么目的呀?不明白你为什么要用like '%'
huntout 2000-08-08
  • 打赏
  • 举报
回复
like '%' 本來就指的是所有不為空的記錄,is not null 與它等效,但效率更高!
若你要查出所有記錄,用 select * from users 就行了!

13,822

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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