日期:2014-05-18 浏览次数:20914 次
select * from 顾客咨询表 where 姓名+咨询内容+咨询意向+备注 like '%输入%'
------解决方案--------------------
楼上的可以
------解决方案--------------------
2楼更简洁!顶!
------解决方案--------------------
建议写个存储过程!
楼上的效率可能不太高!
------解决方案--------------------
一楼的写法有可能会使用索引,二楼的是通过计算来查询,用不到索引,所以,一楼的效率高
------解决方案--------------------
顶了看
------解决方案--------------------
同一樓!
------解决方案--------------------
字串的like 左邊加%,類似like '%c' ,都用不到索引
------解决方案--------------------
若是 姓名+咨询内容+咨询意向+备注=aa+bb+cc+dd 而 输入=aacc
也要使它能搜出来sql语句又当如何写
------解决方案--------------------
二楼的不妥,若干姓名+咨询内容+咨询意向+备注=张三+维护+cc+dd 而 输入=三维,那不也会有结果这与需求不符
------解决方案--------------------
1楼正解
2楼会出错
比如
select * from 顾客咨询表 where 姓名(...输)+(入...)咨询内容+咨询意向+备注 like '%输入%'
就会出错
------解决方案--------------------
1楼的正确。2楼的错误。
实际上最好用自己定义函数来写(不用存储过程)
select * from table where f(输入)=...
------解决方案--------------------
string s = this.textbox.text.trim(); for (int i = 0;i < s.length; i++) { string sql = " select * from 顾客咨询表 where 姓名 like '%" + s[i].ToString() + "%' or 咨询内容 like '%" + s[i].ToString() + "%' or 咨询意向 like '%" + s[i].ToString() + "%' or 备注 like '%" + s[i].ToString() + "%'"; }
------解决方案--------------------
只能用函数了,有点麻烦
------解决方案--------------------
我感觉用like来个模糊查询就可以了吧