首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用tp框架和SQL语句查询数据某字段包含某值

有时我们需要查询某个字段是否包含某值时,通常用like进行模糊查询,但对于一些要求比较准确查询时(例如:微信公众号关键字回复匹配查询)就需要用到MySQL find_in_set()函数; 以下是用...find_in_set()函数写sq查询l语句示例: $keyword = '你好'; $sql = "select * from table_name where find_in_set('"....$keyword"',msg_keyword) and msg_active = 1"; 以下是在tp框架中使用find_in_set()函数查询示例: $keyword = '你好'; $where...数据库关键字要以英文“,”分隔; 2.存储数据要对分隔符进行处理,保证以英文“,”分隔关键字。...以上这篇使用tp框架和SQL语句查询数据某字段包含某值就是小编分享给大家全部内容了,希望能给大家一个参考。

7.3K31

SQL 优化必懂知识点

查询结果返回 30% 内数据时,应该走索引(数据量小,其实 phone 等值查询也是);当查询结果返回是超过 30% 数据时,基本会走全扫描。...有人说基数高,有人说在 where 条件。这些答案并不完美。基数高究竟多高?没有和总行数对比,始终不知道有多高。比如一个基数是几万行,但是总数是十几亿行,那么这个基数还高?...当一个列出现在 where 条件,该没有创建索引并且选择性大于 20% 时,那么该必须创建索引,从而提升 SQL 查询性能。当然了,如果只有几百条数据,那我们就不用创建索引了。...回(TABLE ACCESS BY INDEX ROWID) 当对一个创建索引之后,索引会包含键值及键值对应行所在 rowid。通过索引记录 rowid 访问数据就叫回。...select count (*) from test; 这样 SQL 就无需回。 当要查询包含在索引,这个时候就不需要回,所以我们往往会建立组合索引来消除回,从而提升性能。

66920
您找到你想要的搜索结果了吗?
是的
没有找到

MySQLDML语句和事务概念「建议收藏」

penalties 也可以把本行再次添加到。...playerno FROM players; ##新建第一数据已经插入完毕 UPDATE players_data pd ##更新,新建第一数据分别访问matches SET number_mat...没有WHERE条件,则删除所有行 示例: DELETE FROM penalties WHERE playerno=44; 语句释义:删除44号球员罚款 2.带子查询 注:在WHERE子句查询...[WHERE where_condition] 如果FROM有别名,在DELETE子句中只能使用别名 示例: DELETE teams, matches FROM teams, matches...数据修改都是在内存中进行 通过查询,当前用户(事务)能够查看DML操作结果 其它用户(事务)不能查看当前用户(事务)所做DML操作结果

1.6K20

MySQL Slow Sql优化(面向研发)

Tables:查询涉及到 Explain:SQL语句 四、SQL优化利器—explain使用 explain模拟优化器执行SQL语句,在5.6以及以后版本,除过select,其他比如insert...--类型type还有其他值,如ref_or_null(与ref类似,区别在于条件包含对NULL查询)、index_merge(索引合并优化)、unique_subquery(in后面是一个查询主键字段查询...7)rows:扫描行数量 8)Extra:执行情况说明和描述,包含不适合在其他显示但是对执行计划非常重要额外信息。...6)限制每张索引数量,建议单张索引不超过5个 7)出现在SELECT、UPDATE、DELETE语句WHERE条件,和包含在ORDER BY、GROUP BY、DISTINCT,通常建立联合索引效果更好...8)区分度最高放在联合索引最左侧(区分度=不同值数量/总行数) 9)尽量把字段长度小放在联合索引最左侧(因为字段长度越小,一页能存储数据量越大,IO性能也就越好) 10)使用最频繁放到联合索引左侧

1.8K31

SQL命令大全,每条命令均有示例,小白看了也可成神!

SELECT SELECT 可能是最常用 SQL 语句,每次使用 SQL 查询数据时,几乎都会用到它。 例如,在下面的代码,从customers查询name字段。...FROM customers; FROM FROM 指定查询来源 SELECT name FROM customers; WHERE 过滤查询,返回匹配条件结果,一般条件配合=,>,=,...customers WHERE age BETWEEN 45 AND 55; LIKE like用于模糊查询,在下面的示例代码返回名称包含字符 Bob 数据 SELECT name FROM...customers WHERE name LIKE ‘%Bob%’; LIKE 其他运算符: %x — 选择所有以 x 开头值 %x% — 选择包含 x 所有值 x% — 选择所有以 x...CREATE INDEX idx_name ON customers (name); CREATE VIEW CREATE VIEW 根据 SQL 语句结果集创建虚拟,一个视图就像一张普通(可以像一张一样查询

3.8K62

基础篇:数据库 SQL 入门教程

SELECT – 查询数据 SELECT 语句用于从中选取数据,结果被存储在一个结果(称为结果集)。...WHERE – 条件过滤 如果需要从中选取指定数据,可将 WHERE 子句添加到 SELECT 语句。...JOIN – 多表关联 JOIN 用于根据两个或多个之间关系,从这些查询数据。 有时为了得到完整结果,我们需要从两个或更多获取结果。我们就需要执行 join。...数据库可通过键彼此联系起来。主键(Primary Key)是一个,在这个每一行值都是唯一。在,每个主键值都是唯一。...VIEW – 视图 在 SQL ,视图是基于 SQL 语句结果可视化。 视图包含行和,就像一个真实。视图中字段就是来自一个或多个数据库真实字段。

8.9K10

两万字图文 SQL 零基础入门,不怕你学不会,就怕你不收藏!❤️

SQL 面向数据库执行查询 SQL 可从数据库取回数据 SQL 可在数据库插入新记录 SQL 可更新数据库数据 SQL 可从数据库删除记录 SQL 可创建新数据库 SQL 可在数据库创建新...SELECT – 查询数据 SELECT 语句用于从中选取数据,结果被存储在一个结果(称为结果集)。...WHERE – 条件过滤 如果需要从中选取指定数据,可将 WHERE 子句添加到 SELECT 语句。...有时为了得到完整结果,我们需要从两个或更多获取结果。我们就需要执行 join。 数据库可通过键彼此联系起来。主键(Primary Key)是一个,在这个每一行值都是唯一。...VIEW – 视图 在 SQL ,视图是基于 SQL 语句结果可视化。 视图包含行和,就像一个真实。视图中字段就是来自一个或多个数据库真实字段。

8.3K10

MySQL——索引优化实战

user总行数是5,gender 基数是 2,说明 gender 里面有大量重复值,name 基数等于总行数,说明 name没有重复值,相当于主键。...回 当对一个创建索引之后,索引会包含键值及键值对应行所在 rowid。通过索引记录 rowid 访问数据就叫回。...回次数太多会严重影响 SQL 性能,如果回次数太多,就不应该走索引扫描,应该直接走全扫描。 EXPLAIN命令结果 UsingIndex意味着不会回,通过索引就可以获得主要数据。...Handlerreadrnd_next:数据文件读取下一行请求数,如果正在进行大量扫描,值较高,则说明索引利用不理想。...当查询其他时,就需要回查询,这也是为什么要避免 SELECT*原因之一: EXPLAIN SELECT*FROM userwherestatus=1; ?

52041

MySQL——索引优化实战

通过索引记录 rowid 访问数据就叫回。回次数太多会严重影响 SQL 性能,如果回次数太多,就不应该走索引扫描,应该直接走全扫描。...EXPLAIN命令结果Using Index意味着不会回,通过索引就可以获得主要数据。Using Where则意味着需要回取数据。...Handler_read_rnd_next:数据文件读取下一行请求数,如果正在进行大量扫描,值较高,则说明索引利用不理想。...; 而是查询条件是否包含索引最左字段: EXPLAIN SELECT * FROM user WHERE status=2 ; 5.union、in、or 都能够命中索引,建议使用 in。...where status=1; 当查询其他时,就需要回查询,这也是为什么要避免SELECT *原因之一: EXPLAIN SELECT * FROM user where status=1

90820

MySQL十二:索引分析

student where id > 1; 因为「union会对结果去重,内部创建了一个 名字临时,把查询 1 和查询 2 结果集都合并到这个临时,利用唯一键进行去重,...将被标记为:DERIVED SUBQUERY 在SELECT或WHERE列表包含了子查询 DERIVED 在FROM列表包含查询被标记为DERIVED(衍生);MySQL会递归执行这些子查询...UNION RESULT 从UNION获取结果SELECT DEPENDENT SUBQUERY 在SELECT或WHERE列表包含了子查询,子查询基于外层 UNCACHEABLE SUBQUREY...三、覆盖索引 索引覆盖:「只需要在一棵索引树上就能获取SQL所需所 有数据,无需回,速度更快」 覆盖索引形式:,搜索索引键字段恰好是查询字段 实现索引覆盖最常见方法就是:将被查询字段,...第一次排序字段读取出来,然后排序;第二 次去读取其他字段数据。 单路排序:从磁盘查询所需所有数据,然后在内存排序结果返回。

1.4K20

MySQL学习10_通配符和存储过程

'Fish%' -- 查询Fish开头 where prod_name like '%Fish' -- 查询Fish结尾 where prod_name like '%Fish%' -- 查询包含Fish...为什么需要存储过程 简化操作:处理封装在一个单元,简化复杂操作,隐藏赋复杂业务逻辑 防止错误:不必要建立重复一系列处理步骤,保证数据一致性 保证安全:简化对变动管理。...-- 商品名字 7.08, -- 价格 'a product of skin' -- 描述 ); 存储过程自动添加到Products,并且传入属性传给对应。...as select * from TENNIS.MATCHES; 存储过程实例 mysql>delimiter $$ -- SQL语句结束符临时改为$$(这个符号可以自定义) mysql>...create procedure delete_matches(in p_playerno integer) ->begin -> delete from matches -> where

87110

浅聊count(1)、count(*) 与 count(列名) 区别

简单来说: COUNT(1) 和 COUNT(*) 表示是直接查询符合条件数据库行数。而 COUNT(列名) 表示查询符合条件值不为 NULL 行数。...结果是一个 BIGINT 值。 如果查询结果没有命中任何记录,则返回 0。 但是,值得注意是,COUNT(*) 统计结果中会包含值为 NULL 行数。...MyISAM 之所以能够记录总行数并供 COUNT(*) 查询使用,是因为其级锁机制保证了行数查询准确性,没有并发行数修改。...从 MySQL 8.0.13 开始,针对 InnoDB SELECT COUNT(*) FROM tbl_name 查询,在扫过程中进行了优化,前提是查询语句不包含 WHERE 或 GROUP BY...这些优化前提是查询语句中不包含 WHERE 和 GROUP BY 条件。

10710

MySQL索引优化看这篇文章就够了!

组合索引 INDEX:即一个索引包含多个,多用于避免回查询。...user总行数是5,gender基数是2,说明gender里面有大量重复值,name基数等于总行数,说明name没有重复值,相当于主键。...回:当对一个创建索引之后,索引会包含键值及键值对应行所在rowid。通过索引记录rowid访问数据就叫回。...回次数太多会严重影响SQL性能,如果回次数太多,就不应该走索引扫描,应该直接走全扫描。 EXPLAIN命令结果Using Index意味着不会回,通过索引就可以获得主要数据。...当查询其他时,就需要回查询,这也是为什么要避免SELECT*原因之一: EXPLAIN SELECT * FROM user where status=1; ?

38920

MySQL数据库查询

聚合函数又叫组函数,通常是对表数据进行统计和计算,一般结合分组(group by)来使用,用于统计和计算分组数据 常用聚合函数: count(col): 表示求指定总行数 max(col):...表示求指定最大值 min(col): 表示求指定最小值 sum(col): 表示求指定和 avg(col): 表示求指定平均值 2、求总行数 -- 返回非NULL数据总行数. select...分组查询 1、分组查询介绍 分组查询就是查询结果按照指定字段进行分组,字段数据相等分为一组 分组查询基本语法格式如下: GROUP BY 列名 [HAVING 条件表达式] [WITH ROLLUP...第一范式(1NF): 强调原子性,即不能够再分成其他几列。...开发流程是先画出E-R模型,然后根据三范式设计数据库结构 外键SQL语句编写 1、外键约束作用 外键约束:对外键字段值进行更新和插入时会和引用字段数据进行验证,数据如果不合法则更新和插入会失败

18.5K20

MySQL索引优化看这篇文章就够了!

:当对一个创建索引之后,索引会包含键值及键值对应行所在rowid。通过索引记录rowid访问数据就叫回。...回次数太多会严重影响SQL性能,如果回次数太多,就不应该走索引扫描,应该直接走全扫描。 EXPLAIN命令结果Using Index意味着不会回,通过索引就可以获得主要数据。...Handler_read_rnd_next:数据文件读取下一行请求数,如果正在进行大量扫描,值较高,则说明索引利用不理想。...最左原则并不是说是查询条件顺序: EXPLAIN SELECT * FROM user WHERE status=1 AND name='swj'; 而是查询条件是否包含索引最左字段: EXPLAIN...where status=1; 当查询其他时,就需要回查询,这也是为什么要避免SELECT*原因之一: EXPLAIN SELECT * FROM user where status=1;

39820

MySQL索引优化看这篇文章就够了!

:当对一个创建索引之后,索引会包含键值及键值对应行所在rowid。通过索引记录rowid访问数据就叫回。...回次数太多会严重影响SQL性能,如果回次数太多,就不应该走索引扫描,应该直接走全扫描。 EXPLAIN命令结果Using Index意味着不会回,通过索引就可以获得主要数据。...Handler_read_rnd_next:数据文件读取下一行请求数,如果正在进行大量扫描,值较高,则说明索引利用不理想。...,最左原则并不是说是查询条件顺序: EXPLAIN SELECT * FROM user WHERE status=1 AND name='swj'; 而是查询条件是否包含索引最左字段: EXPLAIN...where status=1; 当查询其他时,就需要回查询,这也是为什么要避免SELECT*原因之一: EXPLAIN SELECT * FROM user where status=1;

39530
领券