多like的SQL语句优化

select * from table where facctcode = '233[深圳]'
and facctattr like '投资%'
and facctattr not like '%溢折价%'
and facctattr not like '%估值增值%'
请问这种语句有办法优化么,因为数据库方面用的有sqlserver,oracle,db2
所以尽量使用sql的标准语法,不要用专用的聚合函数等

    facctcode = '233[深圳]'    可以使用索引,建立索引

    facctattr like '投资%'        可以使用索引,建立索引

    facctattr not like '%溢折价%'   无法使用索引

    facctattr not like '%估值增值%'  无法使用索引

也就是说,可以对 列   facctcode  和  facctattr  分别建立索引

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-07-24
select * from table ---不要用* ,用列名,用哪列查那个
where facctcode = '233[深圳]' ---- 可以使用索引,建立索引
and facctattr like '投资%' ------使用索引,建立索引
and facctattr not like '%溢折价%'
and facctattr not like '%估值增值%'
---加时间条件,如果不是全表查询的话,加时间
and (time>'' and time<'' ) --最好是加括号,这样会先执行的
第2个回答  2013-07-24
与其研究 LIKE '%' 的优化方法不如在可能的范围内调整你数据库结构。结构设计上的重大缺陷没办法用优化语句弥补

sql语句查询,多字段like模糊查询优化
初始化SqlCommand、SqlConnection,获取数据表至DataTable,查询多次,本地缓冲,效率高点。进行SQL性能优化的方法:SQL语句不要写的太复杂。一个SQL语句要尽量简单,不要嵌套太多层。使用『临时表』缓存中间结果。SQL模糊查询,使用like比较关键字,加上SQL里的通配符,请参考以下:LIKEMc%将搜索以字母Mc开...

sql语句查询,多字段like模糊查询优化
1、多字段like模糊查询优化:最常见的写法:where a like '%xx%' or b like '%xx%' or c like '%xx%';这种写法查询效率低,经过调查,下面的方法可以替代,并且效率高:2、如果like的关键字相同:where instr(nvl(a, '')||nvl(b,'')||nvl(c,''), 'xx') > 0 把要模糊查询...

如何优化MySQL中的Like查询mysqllike优化
首先,要想做好 Like 查询优化,索引是必不可少的,如果存在 Like 查询的字段,一定要设置索引,除此之外,如果查询可以包括其他列,也可以考虑建立复合索引,优先采用匹配度更高的前缀索引。此外,我们还可以对 SQL 语句进行结构化,以提高查询性能。例如,如果查询条件中包含 Like 查询,那就尽量将 Lik...

多like的SQL语句优化
facctattr not like '%溢折价%' 无法使用索引 facctattr not like '%估值增值%' 无法使用索引 也就是说,可以对 列 facctcode 和 facctattr 分别建立索引

Sql优化-多like模糊查询及根据时间排序
优化过程:用的是两张表联查,四个条件like查询 ,根据时间排序降序 其中A,B表没有大字段,A表20万多数据,B表50万多条数据。语句如下:EXPLAIN SELECT A.bondId,A.sname,A.cname,A.secuCode,A. ISSUER,A.guarantor,B.underwriter AS infoSource   FROM   A   LEFT...

SQL语句like怎么使用多
te"的记录。最后,如果你希望调整查询的灵活性,可以改变LIKE子句的写法,以适应不同的搜索需求,具体示例如下:sqlSELECT * FROM your_table WHERE column_name LIKE '科技*IT' ESCAPE '*';通过这些步骤,你可以灵活地使用LIKE语句在SQL查询中进行模式匹配,满足特定的数据搜索需求。

mysql如何优化like%关键字查询?
如需进一步提升查询速度,优化SQL语句是关键。以下30个方法有助于提高MySQL查询效率:1. 避免使用!=或>操作符,以减少全表扫描。2. 尽可能在查询中使用索引字段,提升性能。3. 对于NULL值判断,尽量避免使用LIKE或IN操作符。4. 将OR操作符替换为UNION ALL,避免全表扫描。5. 使用IN或NOT IN时,...

SQL语句like怎么使用多个like条件...
1、第一步,新建测试表,见下图,转到下面的步骤。2、第二步,完成上述步骤后,插入测试数据,见下图,转到下面的步骤。3、第三步,完成上述步骤后,查看表中的所有记录,代码见下图,转到下面的步骤。4、第四步,完成上述步骤后,编写sql,包括“科技”以及“ IT”等记录,代码见下图,转到下面的...

sql like 搜索效率问题 sql如下,当最后5个like同时存在时效率奇低,删...
1 可以尝试用charIndex代替like 如:and CharIndex('1', jbpmbusiness.RECV_NUM) > 0 2 如果不行可以尝试把几个拼接起来如 jbpmbusiness.RECV_NUM + ‘,’ + jbpmbusiness.LWZH +',' like '%1%,%1%,'逗号可以用其他不可能包含的字符替代 3 可以考虑数据库冗余一个字段,格式如2,这个肯定...

Oracle中使用多个like查询的问题
--建议用这种写法,数据量大又需要模糊查询的时候,用instr函数效率比like要高很多select b.id from table bwhere (instr(b.context,'apple')>=1 or instr(b.context,'banana')>=1)and instr(b.context,'strawberry')=0;

相似回答