MySQL比like语句更高效的写法
locate
position
instr
find_in_set
标签: locate instr find_in_set 分类: MySQL
你是否一直在寻找比MySQL的LIKE语句更高效的方法的,下面我就为你介绍几种。
LIKE语句
SELECT `column` FROM `table` where `condition` like `%keyword%'
事实上,可以使用 locate(position) 和 instr 这两个函数来代替
一、LOCATE语句
SELECT `column` from `table` where locate(‘keyword’, `condition`)>0
二、或是 locate 的別名 position
POSITION语句
SELECT `column` from `table` where position(‘keyword’ IN `condition`)
三、INSTR语句
SELECT `column` from `table` where instr(`condition`, ‘keyword’ )>0
locate、position 和 instr 的差別只是参数的位置不同,同时locate 多一个起始位置的参数外,两者是一样的。
mysql> SELECT LOCATE(‘bar’, ‘foobarbar’,5);
-> 7
速度上这三个比用 like 稍快了一点。
~~~~~~~~~~~~~~~~~~~~~~~华丽的分割线~~~~~~~~~~~~~~~~~~~~~~~~~~~~
四、还要给大家介绍一个新成员,那就是find_in_set
find_in_set(str1,str2) 函数:返回str2中str1所在的位置索引,其中str2必须以","分割开。
表:
mysql> select * from region;
+----+-------------+
| id | name |
+----+-------------+
| 1 | name1,nam2 |
| 2 | name1 |
| 3 | name3 |
| 4 | name2,name4 |
| 5 | name3,name5 |
+----+-------------+
5 rows in set (0.00 sec)
FIND_IN_SET语句
mysql> select * from test where find_in_set('name1',name);
+----+------------+
| id | name |
+----+------------+
| 1 | name1,nam2 |
| 2 | name1 |
+----+------------+
2 rows in set (0.02 sec)
五、当然,还有mysql的全文索引
全文索引:http://dev.mysql.com/doc/refman/5.6/en/fulltext-search.html
分享到:
相关推荐
MySQL中的替换功能主要涉及到对数据库表中字段内特定字符串的替换操作,这通常通过`REPLACE()`函数来实现。在数据库管理和数据处理中,这个功能非常实用,可以用于更新已存在的数据,使其满足新的格式或者需求。下面...
将ubk_vhost_list表中的字段userid中的字符10005替换成10010 UPDATE `table_name` SET `field_name` = replace (`field_name`,’from_str’,’to_str’) WHERE `field_name` LIKE ‘%from_str%’ 说明: table_name ...
首先,replace函数是MySQL中的字符串函数,用于在字符串中查找指定的子字符串并替换为另一个字符串。replace函数的基本语法是replace(对象,搜索,替换),其中对象是要进行搜索和替换的字段,搜索是要被替换成字符串的...
Python 使用 SQL 语句对 MySQL 数据库多条件模糊查询 Python 是一种广泛使用的编程语言,而 MySQL 是一种常用的关系型数据库管理系统。在实际应用中,我们经常需要使用 Python 连接 MySQL 数据库,并执行多条件...
MySQL通过`LIKE`关键字支持模糊查询,可以使用不同的通配符来匹配数据。 #### 三、通配符介绍 - **%**:代表任意数量的字符,可以是零个、一个或多个字符。例如,`'%三%'`将匹配任何包含“三”的记录。 - **_**:...
本教程主要涵盖了MySQL的基础知识,包括安装步骤、基本查询语句以及数据处理的一些常用技巧。 首先,安装MySQL需要关闭防火墙和杀毒软件,以避免可能的安装失败。推荐通过提供的链接下载MySQL安装文件,如mysql-...
MySQL中的`REPLACE()`函数是一个非常实用的字符串处理函数,它允许我们在数据库中的字段值中查找并替换特定的字符子串。这个函数在处理大量数据时尤其有用,能有效地自动化那些繁琐的文本替换任务,避免了手动操作...
本教程将重点讨论如何使用MyBatis框架与MySQL数据库进行数据查询和添加操作。MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射,避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。而...
MySQL中的模糊查询是一种强大的数据检索方法,允许用户使用特定的通配符来匹配不完全确定的数据。本文将详细介绍四种常见的MySQL模糊查询用法,帮助你在处理数据库查询时更加灵活高效。 1. **百分号(%)**:百分号...
在编写这样的语句时,必须遵循MySQL的语法限制,避免在 `UPDATE` 语句中直接对目标表进行子查询。在实际应用中,应选择适合场景、高效且易于理解的解决方案。在处理大数据量时,应尽量减少子查询的使用,以提高性能...
在MySQL客户端中运行以下查询: ```sql mysql> SHOW VARIABLES LIKE 'have_ssl'; ``` 如果`have_ssl`的值为`YES`,则表示MySQL已经启用了SSL支持。如果显示为`DISABLE`或`NO`,你需要在启动MySQL服务时启用SSL功能。...
连接到MySQL服务器后,可以执行SQL查询来查看全局变量`port`: ``` SHOW VARIABLES LIKE 'port'; ``` **修改MySQL的端口号** 修改MySQL端口号涉及到编辑配置文件`my.ini`。以下是一般步骤: 1. **备份配置...
- 登录 MySQL 数据库后,执行 `show variables like 'char%'` 来查看当前字符集设置是否符合预期。 以上步骤详细介绍了 MySQL 的安装、配置、以及常见操作。通过遵循这些指南,您可以顺利地完成 MySQL 的基础配置...
### MySQL单表查询知识点详解 #### 一、简单查询 **简单查询**是MySQL中最基本的查询类型之一,主要用于从数据库表中检索数据。 ##### 4.1.1 SELECT语句 - **基本语法**: `SELECT [DISTINCT] * | {字段名1, 字段...
注:MYSQL过低版本不能进行密码复杂度配置,则关注当前口令复杂度策略,有些MYSQL数据库 password 字段无效,需要替换为 authentication_string。 MYSQL的身份鉴别需要满足以下要求: 1. 应对登录的用户进行身份...
在MySQL中,使用`EXPLAIN`关键字可以帮助我们查看SQL查询的执行计划,这对于优化查询非常重要。例如: ```sql EXPLAIN SELECT * FROM tb_item; ``` ##### 结果说明 - **id**:表示SELECT查询的序列号。这个字段在...
MySQL查询缓存是一种机制,它可以缓存查询结果,当相同的查询再次执行时,可以直接从缓存中获取结果,从而避免重复计算。查询缓存可以通过一系列系统变量来进行配置和管理: - **have_query_cache**:表示当前系统...
在适当的情况下,可以用连接查询(JOIN)替换子查询,以减少中间表的生成,提高执行效率。 4. **减少数据访问量**: - 只请求必要的列:避免使用`select *`,只选择需要的字段。 - 使用`LIMIT`限制返回的行数:...
4. **子查询优化**:考虑使用JOIN替换子查询,或者将子查询转化为表连接。 5. **减少临时表**:优化SQL结构,减少创建临时表的次数,或使用内存临时表。 二、存储引擎优化 1. **InnoDB与MyISAM**:InnoDB支持事务...
### MySQL基础知识及操作指南 ...以上是MySQL中一些常用的操作和概念的详细介绍,涵盖了从基础配置到复杂查询等多个方面。这些知识点对于理解和掌握MySQL非常关键,无论是初学者还是有一定经验的开发者都应熟练掌握。