当前位置: 首页 > 数据库 > MySQL教程 > 正文

mysql查询语法记录

时间:2017-01-04

mysql中查询字符串长度:

length:   是计算字段的长度一个汉字是算三个字符,一个数字或字母算一个字符

CHAR_LENGTH(str) 返回值为字符串str 的长度,长度的单位为字符。一个多字节字符算作一个单字符。对于一个包含五个二字节字符集, LENGTH()返回值为 10,而 CHAR_LENGTH()的返回值为5。

CHARACTER_LENGTH(str) CHARACTER_LENGTH()是CHAR_LENGTH()的同义词。

BIT_LENGTH(str) 返回2进制长度.

例如:可以查出用户名长度少于6个字符的用户列表。

SQL代码:

SELECT * FROM admin WHERE LENGTH(username) < 6

CHAR_LENGTH(str)

返回值为字符串str 的长度,长度的单位为字符。一个多字节字符算作一个单字符。对于一个包含五个二字节字符集, LENGTH()返回值为 10,而CHAR_LENGTH()的返回值为5。

CHARACTER_LENGTH(str)

CHARACTER_LENGTH()是CHAR_LENGTH()的同义词。

BIT_LENGTH(str)

返回2进制长度.

简单的总结来说,mysql中获取字符串长度的有两个函数:

length:返回字符串所占的字节数,是计算字段的长度一个汉字是算三个字符,一个数字或字母算一个字符

char_length:返回字符串所占的字符数,不管汉字还是数字或者是字母都算是一个字符

mysql中更新时 追加字符串: 

update 表名 set 列名=concat(列名, '追加的字符串');

截取字符串:

函数:

1、从左开始截取字符串

left(str, length)

说明:left(被截取字段,截取长度)

例:select left(content,200) as abstract from my_content_t

2、从右开始截取字符串

right(str, length)

说明:right(被截取字段,截取长度)

例:select right(content,200) as abstract from my_content_t

3、截取字符串 

substring(str, pos)

substring(str, pos, length)

说明:substring(被截取字段,从第几位开始截取)

substring(被截取字段,从第几位开始截取,截取长度)

例:select substring(content,5) as abstract from my_content_t

select substring(content,5,200) as abstract from my_content_t

(注:如果位数是负数 如-5 则是从后倒数位数,到字符串结束或截取的长度)

4、按关键字截取字符串

substring_index(str,delim,count)

说明:substring_index(被截取字段,关键字,关键字出现的次数)

例:select substring_index("blog.jb51.net","。",2) as abstract from my_content_t

结果:blog.jb51

(注:如果关键字出现的次数是负数 如-2 则是从后倒数,到字符串结束)

函数简介:

SUBSTRING(str,pos) , SUBSTRING(str FROM pos) SUBSTRING(str,pos,len) , SUBSTRING(str FROM pos FOR len)

不带有len 参数的格式从字符串str返回一个子字符串,起始于位置 pos。带有len参数的格式从字符串str返回一个长度同len字符相同的子字符串,起始于位置 pos。

使用 FROM的格式为标准 SQL 语法。也可能对pos使用一个负值。假若这样,则子字符串的位置起始于字符串结尾的pos 字符,而不是字符串的开头位置。在以下

格式的函数中可以对pos 使用一个负值。

mysql中查询语句中 使用到类型转换

Cast函数;CONVERT函数。

用法:CAST(expr AS type), CONVERT(expr,type) , CONVERT(expr USING transcoding_name).

SELECT CONVERT('abc' USING utf8);

将varchar 转为Int 用 cast(str as unsigned) str为varchar类型的字符串 。

比如常用的百分比转换:

select cast((1/3)*100 as UNSIGNED) as percent from dual;

result: 33

MySQL类型转换函数参数 : CAST(xxx AS 类型) , CONVERT(xxx,类型)

这个类型 可以是以下值其中的 一个:

BINARY[(N)]

CHAR[(N)]

DATE

DATETIME

DECIMAL

SIGNED [INTEGER]

TIME

UNSIGNED [INTEGER]

整数 : SIGNED

无符号整数 : UNSIGNED

二进制,同带binary前缀的效果 : BINARY

字符型,可带参数 : CHAR()

日期 : DATE

时间: TIME

日期时间型 : DATETIME

浮点数 : DECIMAL

BINARY str 是CAST(str AS BINARY)的缩略形式:

来源:http://blog.csdn.net/wanghui19931015/article/details/54016117