Sql中实现模糊查询(100分)

  • 主题发起人 主题发起人 hxg
  • 开始时间 开始时间
H

hxg

Unregistered / Unconfirmed
GUEST, unregistred user!
Select * From Table1
where Field1 like '%'mValue'%'

实现中文查询一切正常,但英文只能第一个字母或中间字母正常,第一个字母后连续几个字母就无法查询?如何解决?
 
请将问题描述得更清楚一些好吗?
 
并无这种问题啊!请你给个例子。
 
Select * From Table1 where Field1 like '%'mValue'%'
是不是可以写成
Select * From Table1 where Field1 like '%'+:mValue+'%'
或者
Select * From Table1 where Field1 like :mValue
Query1.Params[0].value:='%'+mValue+'%'
 

源代码是这样的:
sql.Add('select *');
sql.add('From ScriptReg');
sql.Add('where 题目 like :msTitle');
parambyname('msTitle').asstring:='%'+lowerCase(editTitle.Text)+'%';

 
语句是知道的,你应当给出查询的例子,如可查到...但查不到...
 
去掉lowercase试试
 
如数据库中有一个记录,其“题目"是"Delphi数据库编程",
现在使用以上使用模糊查询,如输入“数据库”能查询到,
输入"D"或"lph"也能查询到,但输入"De"或“Del"等有第一个
字母的多个字母后,就查询不到了。
 
你的问题挺奇怪。
正常来说,应当是大小写的问题,因为lowercase后'De'和'Del'变成小写,不会被找
到。如果是大小写的问题呢,你的'D'是不会被查到的。
你的实际数据和实际执行语句就是这样的吗?不可思议。
 
正如MENXIN所说,去掉LOWERCASE是肯定的,但根据你的查询
肯定不正确。
 
你们好:
去掉LOWERCASE后,能得出正确结论,看来是我理解处理,不能把被查询的对象
强制转化成大小写。谢谢!
 
后退
顶部