我要做一个关键子的查询,对一个userinfo表,要用关键字对该表的所有字段进行模糊匹配,由于字段太多鸟,难道我要写where name like '%关键字%' or sex like '%关键字%' or ........
我不想写成那样,请问还有办法吗?
貌似没什么好办法
不用or就用union all
引用 貌似没什么好办法 不用or就用union all如果你自己写sql语句这样写就太麻烦了,建议你在程序里面自动生成where条件语句,一个循环就可以检查所有模湖查询
那就只能写循环语句,用游标遍历该表每个字段,对每个字段生成like '%关键字%' sql语句,然后用exec执行。
引用 我要做一个关键子的查询,对一个userinfo表,要用关键字对该表的所有字段进行模糊匹配,由于字段太多鸟,难道我要写where name like '%关键字%' or sex like '%关键字%' or ........ 我不想写成那样,请问还有办法吗?貌似只能这样.帮顶.
字段多也不是问题啊
1、首先执行sp_help your_table;把列名全部copy出来,放到记事本也行,不过最后放到ultraedit(支持列编辑)
然后每行的开头填入:name like '%
行尾填入:%'
在最前面加上where,搞定!
可以做成一个存储过程,不管字段怎么改动,只要调用存储过程就可以返回你要的结果集
1) 将表名和 关键字做参数
2)在系统中找出 表参数 所有的列
3)构选一个varchar串, 构成成最终要执行的SQL语句
4)动态执行该串;
----------------------
每次查询时,只要执行该存储过程就可以了!
现阶段还想不出什么好方法
相关问答:
执行的顺序: 1)文件浏览框(选择文件使用) 选择好文件后 点击一个导入按钮的时候 ,把上面上传框里的csv文件以一个ID为文件名,上传到**/**文件夹下 2)读取这个文件夹下的csv的文件,转换成sql 3 ......
可能因为工作的原因 接触数据库这块比较少,之前都是做程序这块,数据库这块都有专门的人来做 分工都很明细 所以对数据库这一块完全不了解。前段时间 去面试了几家公司 几乎都是在数据库这块挂掉的 连个简单的SQ ......
sqlserver2005 建立的数据库,与手持pda传输数据,最近突然出现无法传递数据的问题,pda端提示的错误时outofmemoryexception,但是pda上面的容量没有问题, sqlserver的日子上的错误如下: 日期 2010-1-25 14:45: ......
我想查询出每天数据的最大的一个值。表的格式如下 表名: hisdata 字段 编号 值 状态 时间 Id value state dattime 101 32.3 0 ......