Oracle where (roltno like '1%' or roltno like '3%') 优化
时间: 2023-12-15 08:03:14 浏览: 127
针对这个查询语句,可以做一些优化:
1. 索引优化:为 roltno 字段建立索引,可以加快查询速度。
2. 增加条件:如果 roltno 的数据分布比较均匀,可以根据实际情况增加一些条件,例如:
```
WHERE (roltno LIKE '1%' AND SUBSTR(roltno, 2, 1) BETWEEN '0' AND '9')
OR (roltno LIKE '3%' AND SUBSTR(roltno, 2, 1) BETWEEN '0' AND '9')
```
这样可以排除掉 roltno 开头是 1 或 3 但第二个字符不是数字的情况,避免了一些无用的匹配。
3. 分割查询:如果数据量比较大,可以考虑将查询分割成多个小查询,例如:
```
WHERE roltno LIKE '1%'
UNION ALL
WHERE roltno LIKE '3%'
```
这样可以减少单个查询的数据量,提高查询效率。
相关问题
Oracle sql语句 select roltno from table1 where (roltno like '1%' or roltno like '3%') 优化
针对这个查询语句,可以做一些优化:
1. 索引优化:为 roltno 字段建立索引,可以加快查询速度。
2. 增加条件:如果 roltno 的数据分布比较均匀,可以根据实际情况增加一些条件,例如:
```
WHERE (roltno LIKE '1%' AND SUBSTR(roltno, 2, 1) BETWEEN '0' AND '9')
OR (roltno LIKE '3%' AND SUBSTR(roltno, 2, 1) BETWEEN '0' AND '9')
```
这样可以排除掉 roltno 开头是 1 或 3 但第二个字符不是数字的情况,避免了一些无用的匹配。
3. 分割查询:如果数据量比较大,可以考虑将查询分割成多个小查询,例如:
```
WHERE roltno LIKE '1%'
UNION ALL
WHERE roltno LIKE '3%'
```
这样可以减少单个查询的数据量,提高查询效率。
oracle like ‘%%%’的用法
在 Oracle 数据库中,`LIKE '%%%`' 是一种模糊匹配的语法,表示通过匹配某个字段是否包含特定的字符或字符模式来查询数据。
具体来说,`LIKE` 操作符用于在 `WHERE` 子句中指定一个模式,然后查找与该模式匹配的数据。这个模式可以包含通配符 `%`,用于匹配任意字符序列(包括空字符序列)。
所以,`LIKE '%%%`' 的意思是匹配任意包含任意字符的字符串,即不限制该字段的值,可以是任何字符串。这种模式通常用于查询表中的所有记录,或者在不确定具体值的情况下进行查询。例如:
```
SELECT * FROM my_table WHERE my_column LIKE '%%%';
```
这个查询语句将返回 `my_table` 表中所有记录,因为它匹配任意包含任意字符的字符串。
阅读全文