mysql count转字符串_MySQL字符串函数

把字符串转成小写

mysql> select sex,LCASE(job) from string_test where job='DUCK';+------+------------+

| sex | LCASE(job) |

+------+------------+

| 1 | duck |

+------+------------+

1 row in set (0.00 sec)

3,FIND_IN_SET(str,strlist)

4,FIELD(str,str1,str2,str3,…)

返回str在str1, str2, str3, …清单的索引。如果str没找到,返回0。FIELD()是ELT()反运算。

mysql> SELECTid, name, FIELD( id, name, sex, job, hobby )-> FROM string_test where id < 4;+----+-------+------------------------------------+

| id | name | FIELD( id, name, sex, job, hobby ) |

+----+-------+------------------------------------+

| 1 | tank | 2 |

| 2 | zhang | 0 |

| 3 | ying | 0 |

+----+-------+------------------------------------+

3 rows in set (0.00 sec)

5.ELT(N,str1,str2,str3,…)

如果N= 1,返回str1,如果N= 2,返回str2,等等。如果N小于1或大于参数个数,返回NULL。ELT()是FIELD()反运算。

mysql> SELECT id, name, ELT(1, id, name, sex, job, hobby ) FROM string_test where id < 4;+----+-------+------------------------------------+

| id | name | ELT(1, id, name, sex, job, hobby ) |

+----+-------+------------------------------------+

| 1 | tank | 1 |

| 2 | zhang | 2 |

| 3 | ying | 3 |

+----+-------+------------------------------------+

3 rows in set (0.00 sec)

mysql> SELECT id, name, ELT(2, id, name, sex, job, hobby ) FROM string_test where id < 4;+----+-------+------------------------------------+

| id | name | ELT(2, id, name, sex, job, hobby ) |

+----+-------+------------------------------------+

| 1 | tank | tank |

| 2 | zhang | zhang |

| 3 | ying | ying |

+----+-------+------------------------------------+

3 rows in set (0.00 sec)

6,REPLACE(str,from_str,to_str)

返回字符串str,其字符串from_str的所有出现由字符串to_str代替。

mysql> SELECT id,REPLACE(hobby,"firend",'living') FROM string_test WHERE id = 2;+----+----------------------------------+

| id | REPLACE(hobby,"firend",'living') |

+----+----------------------------------+

| 2 | fly,make living |

+----+----------------------------------+

1 row in set (0.00 sec)

7,REPEAT(str,count)

返回由重复countTimes次的字符串str组成的一个字符串。如果count <= 0,返回一个空字符串。如果str或count是NULL,返回NULL。

mysql> SELECT id,REPEAT(name,2) FROM string_test WHERE id > 1 and id < 4;+----+----------------+

| id | REPEAT(name,2) |

+----+----------------+

| 2 | zhangzhang |

| 3 | yingying |

+----+----------------+

2 rows in set (0.00 sec)

8,REVERSE(str)

返回颠倒字符顺序的字符串str。

mysql> SELECT id,reverse(name) FROM string_test WHERE id > 1 and id < 4;+----+---------------+

| id | reverse(name) |

+----+---------------+

| 2 | gnahz |

| 3 | gniy |

+----+---------------+

2 rows in set (0.00 sec)

9,INSERT(str,pos,len,newstr)

返回字符串str,在位置pos起始的子串且len个字符长得子串由字符串newstr代替。

mysql> select id,name,INSERT(hobby,10,6,'living') from string_test where id = 2;+----+-------+-----------------------------+

| id | name | INSERT(hobby,10,6,'living') |

+----+-------+-----------------------------+

| 2 | zhang | fly,make living |

+----+-------+-----------------------------+

1 row in set (0.00 sec)

10,SUBSTRING(str FROM pos)

从字符串str的起始位置pos返回一个子串。下面的sub2没有值,因为mysql数据库的下标是从1开始的。

mysql> SELECT id, substring( hobby, 1, 6) AS sub1, substring( hobby from 0 for 8)AS sub2,substring( hobby,2) AS sub3, substring( hobby from 4 ) AS sub4 FROMs

tring_testWHERE id =4;+----+--------+------+-----------+---------+

| id | sub1 | sub2 | sub3 | sub4 |

+----+--------+------+-----------+---------+

| 4 | i love | | love you | ove you |

+----+--------+------+-----------+---------+

1 row in set (0.00 sec)

11,SUBSTRING_INDEX(str,delim,count)

返回从字符串str的第count个出现的分隔符delim之后的子串。如果count是正数,返回最后的分隔符到左边(从左边数) 的所有字符。如果count是负数,返回最后的分隔符到右边的所有字符(从右边数)。

mysql> SELECT id,SUBSTRING_INDEX(hobby,',',2) as test1,SUBSTRING_INDEX(hobby,',',-1) as test2 FROM string_test WHERE id = 3;+----+----------------+---------+

| id | test1 | test2 |

+----+----------------+---------+

| 3 | flying,driving | testing |

+----+----------------+---------+

1 row in set (0.01 sec)

12,LTRIM(str)

返回删除了其前置空格字符的字符串str。

mysql> SELECT id,LTRIM(job) FROM string_test WHERE id = 4;+----+----------------+

| id | LTRIM(job) |

+----+----------------+

| 4 | love your love |

+----+----------------+

1 row in set (0.00 sec)

13,RTRIM(str)

返回删除了其拖后空格字符的字符串str。

mysql> SELECT id,RTRIM(job) FROM string_test WHERE id = 4;+----+----------------+

| id | RTRIM(job) |

+----+----------------+

| 4 | love your love |

+----+----------------+

1 row in set (0.00 sec)

14,TRIM([[BOTH | LEADING | TRAILING] [remstr] FROM] str)

返回字符串str,其所有remstr前缀或后缀被删除了。如果没有修饰符BOTH、LEADING或TRAILING给出,BOTH被假定。如果remstr没被指定,空格被删除。

mysql> select trim('test');+-----------------+

| trim('test') |

+-----------------+

| test |

+-----------------+

1 row in set (0.01 sec)

mysql> SELECT id,TRIM(LEADING "love" from job) as test1,TRIM(BOTH "love" fromjo

b)as test2,TRIM(TRAILING "love" from job) as test3 FROM string_test WHERE id =

4

->;+----+------------+--------+------------+

| id | test1 | test2 | test3 |

+----+------------+--------+------------+

| 4 | your love | your | love your |

+----+------------+--------+------------+

1 row in set (0.00 sec)

15,MID(str,pos,len)

从字符串str返回一个len个字符的子串,从位置pos开始。使用FROM的变种形式是ANSI SQL92语法。

mysql> SELECT id, mid( hobby, 1, 6 ) ASsub1, mid( hobby-> FROM 0

-> FOR 8 ) AS sub2, mid( hobby, 2 ) ASsub3, mid( hobby-> FROM 4 ) ASsub4-> FROMstring_test-> WHERE id =4;+----+--------+------+-----------+---------+

| id | sub1 | sub2 | sub3 | sub4 |

+----+--------+------+-----------+---------+

| 4 | i love | | love you | ove you |

+----+--------+------+-----------+---------+

1 row in set (0.00 sec)

16,LPAD(str,len,padstr)

返回字符串str,左面用字符串padstr填补直到str是len个字符长。

mysql> SELECT id,LPAD(name,11,"zhang ") FROM string_test WHERE id = 3;+----+------------------------+

| id | LPAD(name,11,"zhang ") |

+----+------------------------+

| 3 | zhang zying |

+----+------------------------+

1 row in set (0.00 sec)

17,RPAD(str,len,padstr)

返回字符串str,右面用字符串padstr填补直到str是len个字符长。

mysql> SELECT id,RPAD(name,11," ying") FROM string_test WHERE id = 2;+----+-----------------------+

| id | RPAD(name,11," ying") |

+----+-----------------------+

| 2 | zhang ying |

+----+-----------------------+

1 row in set (0.00 sec)

18,LEFT(str,len)

返回字符串str的最左面len个字符。

mysql> SELECT id,left(job,4) FROM string_test WHERE id = 4;+----+-------------+

| id | left(job,4) |

+----+-------------+

| 4 | love |

+----+-------------+

1 row in set (0.00 sec)

19,RIGHT(str,len)

返回字符串str的最右面len个字符。

mysql> SELECT id,right(job,4) FROM string_test WHERE id = 4;+----+--------------+

| id | right(job,4) |

+----+--------------+

| 4 | love |

+----+--------------+

1 row in set (0.00 sec)

20,位置控制函数

POSITION(substr IN str)

返回子串substr在字符串str第一个出现的位置,如果substr不是在str里面,返回0.

LOCATE(substr,str,pos)

返回子串substr在字符串str第一个出现的位置,从位置pos开始。如果substr不是在str里面,返回0。

INSTR(str,substr)

返回子串substr在字符串str中的第一个出现的位置。这与有2个参数形式的LOCATE()相同,除了参数被颠倒。

mysql> SELECT id,INSTR(job,"you") as instr,LOCATE('love',job,3) aslocate,POSITION('love' in job) as position FROM string_test WHERE id = 4;+----+-------+--------+----------+

| id | instr | locate | position |

+----+-------+--------+----------+

| 4 | 6 | 11 | 1 |

+----+-------+--------+----------+

1 row in set (0.00 sec)

21,得到字符串长度的函数

LENGTH(str),OCTET_LENGTH(str),CHAR_LENGTH(str),CHARACTER_LENGTH(str)

mysql> SELECT id,LENGTH(job) as one,OCTET_LENGTH(job) as two,CHAR_LENGTH(job) asthree,CHARACTER_LENGTH(job)as four FROM string_test WHERE id = 4;+----+-----+-----+-------+------+

| id | one | two | three | four |

+----+-----+-----+-------+------+

| 4 | 14 | 14 | 14 | 14 |

+----+-----+-----+-------+------+

1 row in set (0.00 sec)

22,合并多个字符串,或者表中的多个字段

CONCAT(str1,str2,…)

返回来自于参数连结的字符串。如果任何参数是NULL,返回NULL。可以有超过2个的参数。一个数字参数被变换为等价的字符串形式。

mysql> SELECT id,CONCAT(name,job,hobby) FROM string_test WHERE id = 4;+----+-----------------------------------+

| id | CONCAT(name,job,hobby) |

+----+-----------------------------------+

| 4 | tankzhanglove your lovei love you |

+----+-----------------------------------+

1 row in set (0.00 sec)

23,进制转换

BIN(N)

返回二进制值N的一个字符串表示,在此N是一个长整数(BIGINT)数字,这等价于CONV(N,10,2)。如果N是NULL,返回NULL。

OCT(N)

返回八进制值N的一个字符串的表示,在此N是一个长整型数字,这等价于CONV(N,10,8)。如果N是NULL,返回NULL。

HEX(N)

返回十六进制值N一个字符串的表示,在此N是一个长整型(BIGINT)数字,这等价于CONV(N,10,16)。如果N是NULL,返回NULL。

ASCII(str)

返回字符串str的最左面字符的ASCII代码值。如果str是空字符串,返回0。如果str是NULL,返回NULL。

mysql> select bin(20),oct(20),hex(20),ascii(20);+---------+---------+---------+-----------+

| bin(20) | oct(20) | hex(20) | ascii(20) |

+---------+---------+---------+-----------+

| 10100 | 24 | 14 | 50 |

+---------+---------+---------+-----------+

1 row in set (0.02 sec)

上面我只例举了一部分对字符串进行操作的函数,并且是我觉得我们平时会用的,有可能会用到的一些函数。

在MySQL中进行字符串的拼接要使用CONCAT()函数,CONCAT()函数支持一个或者多个参数,参数类型可以为字符串类型也可以是非字符串类 型。对于非字符串类型的参数MySQL将尝试将其转化为字符串类型,CONCAT()函数会将所有参数按照参数的顺序拼接成一个字符串作为返回值。比如下 面的SQL语句用于将用户的多个字段信息以一个字段的形式查询出来:

SELECT CONCAT('Staff Number :', 'Happiness Index', FNumber, FSalary/(FAge-21)) fromt_employee+----------------------------------------------------------+

| concat |

+----------------------------------------------------------+

| Staff number: Happiness index of DEV001 is 2075.000000 |

| Staff number: Happiness index of DEV002 is 328.571429 |

| NULL |

| Staff number: Happiness index of HR001 is 2150.000000 |

| Staff number: Happiness index of HR002 is 825.000000 |

| Staff number: Happiness index of IT001 is 785.714286 |

| Staff number: Happiness index of IT002 is 466.666667 |

| Staff number: Happiness index of SALES001 is 1325.000000 |

| Staff number: Happiness index of SALES002 is 592.857143 |

+----------------------------------------------------------+

MYSQL中还提供了另外一个进行字符串拼接的函数CONCAT_WS,CONCAT_WS可以在待拼接的字符串之间加入指定的分割符。它的第一个参数值为采用的分隔符,而剩下的参数则为待拼接的字符串值,比如执行下面的SQL:

SELECT CONCAT_WS(',', FNumber,FAge, FDepartment, FSalary) FROMT_Employee+------------------------------------------------------+

| concat_ws(',', FNumber, FAge, FDepartment, FSalary) |

+------------------------------------------------------+

| DEV001, 25, Development, 8300.00 |

| DEV002, 28, Development, 2300.00 |

| DEV003, Development, 3333.00 |

| HR001, 23, HumanResource, 4300.00 |

| HR002, 25, HumanResource, 3300.00 |

| IT001, 28, InfoTech, 5500.00 |

| IT002, 27, InfoTech, 2800.00 |

| SALES001, 25, Sales, 5300.00 |

| SALES002, 35, Sales, 8300.00 |

+------------------------------------------------------+

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/527189.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

gitlab 端口_安装Gitlab-注意端口

文档本身并没有什么特殊&#xff0c;安装也很简单&#xff0c;只是修改端口这里如果有需要的可以看一下安装Gitlab[rootdeploy ~]# sudo yum -y install gitlab-ce默认端口是8080&#xff0c;避免冲突还是修改一下[rootlocalhost ~]# cat /etc/gitlab/gitlab.rb |grep 192.168.…

MySQL read-c_技术分享 | MySQL C API 参数 MYSQL_OPT_READ_TIMEOUT 的一些行为分析

作者&#xff1a;戴岳兵MYSQL_OPT_READ_TIMEOUT 是 MySQL c api 客户端中用来设置读取超时时间的参数。在 MySQL 的官方文档中&#xff0c;该参数的描述是这样的&#xff1a;MYSQL_OPT_READ_TIMEOUT (argument type: unsigned int *)The timeout in seconds for each attempt t…

mysql出现core dumped_mysql-为什么我遇到分段错误(核心已转储)?

这是我要运行的代码.它可以编译,并且工作良好,直到昨天.#include #include int main(int argc, char **argv){MYSQL *conn;MYSQL_RES *result;MYSQL_ROW row;int num_fields;int i;conn mysql_init(NULL);mysql_real_connect(conn, "hostname", "username"…

mysql解释中fitered_MySQL的explain中的参数说明

1、id每个被独立执行的操作的标识&#xff0c;表示对象被操作的顺序&#xff1b;id值大&#xff0c;先被执行&#xff1b;如果相同&#xff0c;执行顺序从上到下。若没有子查询和联合查询&#xff0c;id则都是1。Mysql会按照id从大到小的顺序执行query&#xff0c;在id相同的情…

vue脚手架搭建项目_复习之vue脚手架搭建项目的两种方法

安装脚手架node 版本要求&#xff1a; > 8.9 。关于旧版本&#xff1a;如果在这之前已经全局安装了旧版本的vue-cli(1.x 或 2.x)&#xff0c;那么需要先卸载掉。卸载旧版本运行&#xff1a;npm uninstall vue-cli -g 或 yarn global remove vue-cli。安装vue/cli&#xff1a…

ubuntu修改mysql账户密码_Ubuntu修改mysql用户重置密码

编辑mysql的配置文件/etc/mysql/my.cnf&#xff0c;或者/etc/mysql//mysql.conf.d/mysqld.cnf,在[mysqld]段下加入一行“skip-grant-tables”。1、安装$ sudo apt-get install mysql-server$ apt install mysql-client$ apt install libmysqlclient-dev以此在终端输入上述代码&…

pythonsocket中tcp通信接收不到数据_TCP 为什么三次握手而不是两次握手(正解版)...

先说结论为了实现可靠数据传输&#xff0c; TCP 协议的通信双方&#xff0c; 都必须维护一个序列号&#xff0c; 以标识发送出去的数据包中&#xff0c; 哪些是已经被对方收到的。 三次握手的过程即是通信双方相互告知序列号起始值&#xff0c; 并确认对方已经收到了序列号起始…

mysql高级查询面试_高级MySQL数据库面试问题 附答案

因为有大家的支持&#xff0c;我们才能做到现在&#xff0c;感谢你们这一路上对我们的支持.在这篇文章中&#xff0c;我们将主要针对MySQL的实用技巧&#xff0c;讲讲面试中相关的问题.1. 如何使用SELECT语句找到你正在运行的服务器的版本并打印出当前数据库的名称?答&#xf…

ecshop清除mysql缓存_ECSHOP缓存清理关闭教程

ECSHOP的缓存存放在templates/caches/文章夹下&#xff0c;时间长了这个文件夹就会非常庞大&#xff0c;拖慢网站速度。还有很多情况我们不需要他的缓存。本文介绍禁用ECSHOP缓存的方法。ECSHOP的缓存有两部分&#xff0c;一部分是SMARTY的页面缓存&#xff1b;另一部分是SQL查…

mysql无法启动如何备份文件_mysql 5.7 停电导致无法启动、如何备份数据,重新安装mysql...

用于记录服务器停电导致&#xff0c;mysql启动失败后&#xff0c;如何备份数据&#xff0c;重新安装mysql&#xff0c;主要分为数据备份&#xff0c;mysql重新安装。1、mysql无法启动时&#xff0c;进行数据备份。执行&#xff1a;systemctl start mysqld&#xff0c;启动失败。…

python tkinter entry默认值_Python ---(六)Tkinter窗口组件:Entry

The Tkinter Entry Widget##简介Entry(输入框)组件通常用于获取用户的输入文本。##何时使用 Entry 组件&#xff1f;Entry 组件仅允许用于输入一行文本&#xff0c;如果用于输入的字符串长度比该组件可显示空间更长&#xff0c;那内容将被滚动。这意味着该字符串将不能被全部看…

java不显示图片_Java图片显示不出来,怎么解决

展开全部有两个问题&#xff1a;图片路径没有写对&#xff0c;图片在 src 下&#xff0c;图片路径应是 src/海洋.png&#xff0c;正e68a84e8a2ad62616964757a686964616f31333365656632确的写法应是 image new ImageIcon("src/海洋.png")image new ImageIcon("…

memcached的java客户端_Memcached Java客户端

代码示例&#xff1a;import com.danga.MemCached.*;import org.apache.log4j.*;public class TestMemcached {public static void main(String[] args) {/*初始化SockIOPool&#xff0c;管理memcached的连接池*/String[] servers { "192.168.1.20:12111" };SockIOP…

java 静态块初始化_简单了解java中静态初始化块的执行顺序

这篇文章主要介绍了简单了解java中静态初始化块的执行顺序,文中通过示例代码介绍的非常详细&#xff0c;对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下在java中&#xff0c;其应该是先于所有的方法执行。下面是测试代码&#xff1a;public class Test1 {st…

java 接口访问权限_Java中访问权限-类和接口

(1)类和接口的访问权限种类一样 &#xff0c;有两中public,default&#xff0c;它们的不同在于是否能访问不同包中的类或接口default:只能在本包中访问public:任何地方都可以访问&#xff0c;当然不同的包中&#xff0c;首先要import&#xff0c;导入类。(2)类中成员或方法的访…

java 代理ip工具类_Java基础之java处理ip的工具类

java处理ip的工具类&#xff0c;包括把long类型的Ip转为一般Ip类型、把xx.xx.xx.xx类型的转为long类型、根据掩码位获取掩码、根据 ip/掩码位 计算IP段的起始IP、根据 ip/掩码位 计算IP段的终止IP等方法&#xff0c;可以直接使用&#xff01;package com.hh.test;import java.u…

java smack 例子_java+smack+openfire即时通讯Im(四)

### javasmackopenfire即时通讯Im(四) ###* 创建群聊* 加入群聊# 创建群聊 #前面的单聊完成以后&#xff0c;就开始群聊的功能把&#xff0c;首先是创建群聊&#xff1a;后端进行群组创建&#xff1a;/***** 方法名称&#xff1a;createMutiUserChat* 概要说明&#xff1a;创建…

java 常量区存放 new_java---堆、栈、常量池的存储数据

说到Java中堆、栈和常量池&#xff0c;首先还是看看他们各自存放的数据类型吧&#xff01;栈&#xff1a;Java的JVM的内存可分为3个区&#xff1a;堆(heap)、栈(stack)和方法区(method)也叫静态存储区。堆区:(存放所有new出来的对象&#xff1b;)1.存储的全部是对象&#xff0c…

log加时间 securecrt_SecureCRT配置自动记录日志

很多人用SecureCRT时&#xff0c;希望自动记录日志&#xff0c;一个是方便以后查阅&#xff0c;一个是对自己的操作有个记录。可以看看自己做了什么操作&#xff0c;有时甚至可以看看之前是不是犯了什么错&#xff0c;是个很不错的功能。设置很简单&#xff0c;还可以根据连接的…

java txt 按行读取_java读取按行txt文件

import java.io.BufferedReader;import java.io.FileInputStream;import java.io.InputStreamReader;public class T {public static void main(String[] args) throws Exception{long startTimeSystem.currentTimeMillis(); //获取开始时间FileInputStream filestreamnew File…