mysql 的indexof函数用法说明
如下所示:
LOCATE(substr,str)
返回子串substr在字符串str第一个出现的位置,如果substr不是在str里面,返回0.
mysql> select LOCATE('bar', 'foobarbar'); -> 4 mysql> select LOCATE('xbar', 'foobar'); -> 0
补充:mysql中类似indexOf的方法LOCATE()
LOCATE(substr, str), LOCATE(substr, str, pos)
第一个语法返回substr在字符串str的第一个出现的位置。
第二个语法返回字符串substr在字符串str,从pos处开始的第一次出现的位置。如果substr不在str中,则返回值为0
问题:
有多个科目,一个科目下多个多选题,每个题四种答案(ABCD),统计每个科目的每道题选择ABCD的个数
SELECT sum( CASE WHEN (LOCATE('A', 选项名) > 0) THEN 1 ELSE 0 END ) AS A, sum( CASE WHEN (LOCATE('B', 选项名) > 0) THEN 1 ELSE 0 END ) AS B, sum( CASE WHEN (LOCATE('C', 选项名) > 0) THEN 1 ELSE 0 END ) AS C, sum( CASE WHEN (LOCATE('D', 选项名) > 0) THEN 1 ELSE 0 END ) AS D FROM 表名
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。
相关推荐
-
MySQL SHOW STATUS语句的使用
做MySQL性能调整和服务状态监控,有个前提就是我们要知道当前MySQL的运行状态. 很对开发人员对分库分表,读写分离,SQL性能分析等或多或少有看过一些文章分析,但是如果不结合实际的MySQL运行状态盲目的做一些MySQL配置调整是一种大致加估计的做法,可能恰好切合了当前的实际问题有了性能提升,也有可能毫无作用. 所以,做技术还是要实际情况和理论结合,不能纸上谈兵. 本文参考MySQL官方文档: server-status-variables 实操 查看可以监控的变量指标 我们可以使用语句SH
-
MySQL查询缓存的小知识
前言 我们知道,缓存的设计思想在RDBMS数据库中无处不在,就拿号称2500w行代码,bug堆积如山的Oracle数据库来说,SQL的执行计划可以缓存在library cache中避免再次执行相同SQL发生硬解析(语法分析->语义分析->生成执行计划),SQL执行结果缓存在RESULT CACHE内存组件中,有效的将物理IO转化成逻辑IO,提高SQL执行效率. MySQL的QueryCache跟Oracle类似,缓存的是SQL语句文本以及对应的结果集,看起来是一个很棒的Idea,那为什么从My
-
Mysql技术内幕之InnoDB锁的深入讲解
前言 自7月份换工作以来,期间一直在学习MySQL的相关知识,听了一些视频课,但是一直好奇那些讲师的知识是从哪里学习的.于是想着从书籍中找答案.毕竟一直 看视频也不是办法,不能形成自己的知识.于是想着看书汲取知识,看了几本MySQL的相关书籍,包括<深入浅出Mysql><高性能Mysql><Mysql技术内幕>,发现那些讲 师讲的内容确实都在书上有出现过,于是确信看书才是正确的汲取知识方式.本片主要记录了Mysql的锁机制的学习. 1.什么是锁 锁是计算机协调多个进程或
-
MySQL null的一些易错点
依据null-values,MySQL的值为null的意思只是代表没有数据,null值和某种类型的零值是两码事,比如int类型的零值为0,字符串的零值为"",但是它们依然是有数据的,不是null. 我们在保存数据的时候,习惯性的把暂时没有的数据记为null,表示当前我们无法提供有效的信息. 不过使用null但是时候,需要我们注意一些问题.对此MySQL文档说明如下: problems-with-null 使用null的易错点 下面我摘取MySQL官方给出的null的易错点做讲解. 对M
-
MySQL 有关MHA搭建与切换的几个错误log汇总
1:masterha_check_repl 副本集方面报错 replicates is not defined in the configuration file! 具体信息如下: # /usr/local/bin/masterha_check_repl --conf=/etc/mha/app1.cnf Thu Nov 21 15:33:15 2018 - [warning] Global configuration file /etc/masterha_default.cnf not fou
-
MySQL 主从同步,事务回滚的实现原理
BinLog BinLog是记录所有数据库表结构变更(例如create.alter table)以及表数据修改(insert.update.delete)的二进制日志,主从数据库同步用到的都是BinLog文件.BinLog日志文件有三种模式. STATEMENT 模式 内容:binlog 只会记录引起数据变更的 sql 语句 优势:该模式下,因为没有记录实际的数据,所以日志量和 IO 都消耗很低,性能是最优的 劣势:但有些操作并不是确定的,比如 uuid() 函数会随机产生唯一标识,当依赖 bi
-
mysql 的indexof函数用法说明
如下所示: LOCATE(substr,str) 返回子串substr在字符串str第一个出现的位置,如果substr不是在str里面,返回0. mysql> select LOCATE('bar', 'foobarbar'); -> 4 mysql> select LOCATE('xbar', 'foobar'); -> 0 补充:mysql中类似indexOf的方法LOCATE() LOCATE(substr, str), LOCATE(substr, str, pos) 第一
-
浅谈SQLServer的ISNULL函数与Mysql的IFNULL函数用法详解
SQL Serve的ISNULL函数: ISNULL(check_expression,replacement_value) 1.check_expression与replacement_value的数据类型必须一致. 2.如果check_expression为NULL,则返回replacement_value. 3.如果check_expression为NULL,则返回check_expression. Mysql的IFNULL函数: IFNULL(expr1,expr2) 如果expr1不是
-
MySQL正则表达式regexp_replace函数的用法实例
目录 用法 参数 用法 总结 注:此函数为 MySQL8.0 版本新增,低于8.0版本没有此函数. regexp_replace(expr, pat, repl[, pos[, occurrence[, match_type]]]) 用法 将字符串expr与pat指定的正则表达式匹配的匹配项,替换为字符串repl,并返回结果字符串.如果expr.pat或repl为NULL,则返回值为NULL. 参数 expr:要替换的原始字符串,或者数据库表指定的列. pat:要匹配的正则表达式,pat为空串时
-
MySQL截取和拆分字符串函数用法示例
本文实例讲述了MySQL截取和拆分字符串函数用法.分享给大家供大家参考,具体如下: 首先说截取字符串函数: SUBSTRING(commentid,9) 这个很简单,从第9个字符开始截取到最后.SUBSTRING的参数有三个,最后一个是截取的长度,默认是到结尾,负数是倒数第几位. 接着说拆分字符串函数: SUBSTRING_INDEX(commentid, '-', 1) 这个就稍稍复杂一些了,他的意思是以 - 进行拆分字符串,从第一个关键词开始取前面所有的字符串.如果上面的第三个参数修改为 -
-
PHP操作MySQL的mysql_fetch_* 函数的常见用法教程
mysql_fetch_* 列函数 mysql_fetch_* 列函数的主要功能是从查询返回的结果集中取得相关的查询结果,主要包括: mysql_fetch_array():从结果集中取得一行作为关联数组或索引数组,或二者兼有 mysql_fetch_row():从结果集中取得一行作为枚举数组 mysql_fetch_assoc():从结果集中取得一行作为关联数组 mysql_fetch_object():从结果集中取得一行作为对象 mysql_fetch_field():从结果集中取得字段信息
-
mysql group_concat()函数用法总结
本文实例讲述了mysql group_concat()函数用法.分享给大家供大家参考,具体如下: group_concat(),手册上说明:该函数返回带有来自一个组的连接的非NULL值的字符串结果.比较抽象,难以理解. 通俗点理解,其实是这样的:group_concat()会计算哪些行属于同一组,将属于同一组的列显示出来.要返回哪些列,由函数参数(就是字段名)决定.分组必须有个标准,就是根据group by指定的列进行分组. group_concat函数应该是在内部执行了group by语句,这
-
mysql中find_in_set()函数的使用及in()用法详解
MySQL手册中find_in_set函数的语法解释: FIND_IN_SET(str,strlist) str 要查询的字符串 strlist 字段名 参数以","分隔 如 (1,2,6,8,10,22) 查询字段(strlist)中包含(str)的结果,返回结果为null或记录 假如字符串str在由N个子链组成的字符串列表strlist 中,则返回值的范围在 1 到 N 之间. 一个字符串列表就是一个由一些被 ',' 符号分开的子链组成的字符串.如果第一个参数是一个常数字符串,而第
-
MySQL查询排序与查询聚合函数用法分析
本文实例讲述了MySQL查询排序与查询聚合函数用法.分享给大家供大家参考,具体如下: 排序 为了方便查看数据,可以对数据进行排序 语法: select * from 表名 order by 列1 asc|desc [,列2 asc|desc,...] 说明 将行数据按照列1进行排序,如果某些行列1的值相同时,则按照列2排序,以此类推 默认按照列值从小到大排列(asc) asc从小到大排列,即升序 desc从大到小排序,即降序 例1:查询未删除男生信息,按学号降序 select * from st
-
MYSQL row_number()与over()函数用法详解
语法格式:row_number() over(partition by 分组列 order by 排序列 desc) row_number() over()分组排序功能: 在使用 row_number() over()函数时候,over()里头的分组以及排序的执行晚于 where .group by. order by 的执行. 例一: 表数据: create table TEST_ROW_NUMBER_OVER( id varchar(10) not null, name varchar(1
-
Mysql字符串截取函数SUBSTRING的用法说明
感觉上MySQL的字符串函数截取字符,比用程序截取(如PHP或JAVA)来得强大,所以在这里做一个记录,希望对大家有用. 函数: 1.从左开始截取字符串 left(str, length) 说明:left(被截取字段,截取长度) 例:select left(content,200) as abstract from my_content_t 2.从右开始截取字符串 right(str, length) 说明:right(被截取字段,截取长度) 例:select right(content,200
随机推荐
- 微信营销平台系统–刮刮乐的开发
- JBuilder2005开发Web应用程序
- angularjs定时任务的设置与清除示例
- ubuntu 16.04安装的过程全纪录
- asp.net(c#)开发中的文件上传组件uploadify的使用方法(带进度条)
- java实现Base64加密解密算法
- jquery获取img的src值的简单实例
- JavaScript NaN和Infinity特殊值 [译]
- 原生javascript上传图片带进度条【实例分享】
- js实现微信分享代码
- 微信小程序 (三)tabBar底部导航详细介绍
- pygame 精灵的行走及二段跳的实现方法(必看篇)
- JavaScript开发时的五个注意事项
- 使用ajax操作 JavaScript 对象
- JS打字效果的动态菜单代码分享
- 网页的HTML静态化_网站优化之谈
- java实现优酷视频地址解析示例代码分享
- 可以查杀sxs.exe的bat(批处理)文件
- MFC设置对话框焦点的方法简述
- 计算机二级考试MySQL常考点 8种MySQL数据库设计优化方法