search
HomeDatabaseMysql Tutorialmysql常用函数 [转]
mysql常用函数 [转]Jun 07, 2016 pm 03:01 PM
mysqlnullfunctionCommonly usedCompareequal

算数运算子 +, -, *, / 除于 0 会等于 NULL 。 比较运算子 任何东西跟 NULL 比较会等于 NULL 。 比较字符串通常不需要注意大小写,如果要比较大小写,用 BINARY 关键词。 程序代码 : SELECT * FROM department WHERE name = BINARY 'marketing'; 程序代码 :

算数运算子
+, -, *, /
除于 0 会等于 NULL
比较运算子
任何东西跟 NULL 比较会等于 NULL
比较字符串通常不需要注意大小写,如果要比较大小写,用 BINARY 关键词。

程序代码:

SELECT *
FROM department
WHERE name = BINARY 'marketing';

程序代码:

=      相等
!=
    不相等
小于
小或等于
>     
大于
>=    
大或等于
n BETWEEN
min AND max   
测试范围
n IN (set)    set
可以是一系列的数值或子查询。
   
可以比较 NULL,如果比较两个 NULL 会传回 1
n IS NULL   
测试 n 是否 NULL
ISNULL(n)   
测试 n 是否 NULL

逻辑运算子
传回的值有 1 (true), 0 (false, NULL
任何不是 0 或不是 NULL 的值都是 true

程序代码:

AND && n && m      
               true && true = true
               false && anything = false
              
其它会等于 NULL
OR
||   n || m      
               true || anything = true
               NULL || false = NULL
               NULL || NULL = NULL
               false || false = false
NOT
!    NOT n     不是
               !true = false
               !false = true
               !NULL = NULL
XOR    n XOR m     
不包含的 OR
               true XOR true = false
               true XOR false = true
               false XOR true = true
               NULL XOR n = NULL
               n XOR NULL = NULL


控制流向的函式
IF (e1, e2, e3)
如果 e1 trueIF 会传回 e2,不然会传回 e3
CASE value
WHEN [compare-value] THEN result
[WHEN [compare-value] THEN result ...]
[ELSE result]
END
或是
CASE
WHEN [condition] THEN result
[WHEN [condition] THEN result ...]
[ELSE result]
END

程序代码:

SELECT workdate, CASE
    WHEN workdate     WHEN workdate     ELSE "current"
    END
FROM assignment;


字符串函式
concat(s1, s2, ...) -
连接字符串 s1 s2...
conv(n, original_base, new_base) -
转换数字 n 从本来的 base 到新的 base
length(s) -
找字符串的长度
load_file(filename) -
依照字符串传回档案的内容
locate(needle, haystack, position) -
传回 needle 字符串的开始位置,在 haystack 字符串里,从 position 开始
lower(s) and upper(s) -
转换 s 到小写或大写
quote(s) -
跳脱 s 字符串,让它可以安全输入数据库
replace(target, find, replace) -
传回 target 字符串,将 find 字符串覆盖成 replace 字符串
soundex(s) -
传回跟 s 类似的 soundex 字符串。soundex 是字符串的发音
substring(s, position, length) -
传回字符串里的字符串,s 是本来的字符串,position 是开始的位置,length 是传回的字数
trim(s) -
移除开头跟字尾的空格符。也可以用 rtrim() ltrim()
字符串比较的函式
LIKE -
利用通配字符来进行比较
RLIKE -
利用正规表示法来进行比较
STRCMP -
比较字符串,类似 C 里面的 strcmp()
MATCH -
进行 full-text 比较

利用通配字符来进行比较

程序代码:

SELECT *
FROM department
WHERE name LIKE '%research%';

% 会吻合任何字数,包括 0
_
会吻合单一字数, _at 会吻合 cat, mat, bat...

利用正规表示法来进行比较
RLIKE
可以用来吻合正规表示法。
'cat'
会吻合 'catacomb' 'the cat sat on the mat'
如果只要吻合 'cat',用 '^cat$'
^
表示在吻合的字符串开头是 'cat'
$
表示在吻合的字符串最后是 'cat'
.
可以用来代表通配字符,'.at' 会吻合 'cat', 'bat', 'mat'
*
表示字符可以出现零或多次,'n*' 会吻合 '', 'nn', 'nnn'
()
会归类字符,'(cat)*' 会吻合 '', 'cat', 'catcat', 'catcatcat'
.*
会吻合任何字或字符串。
+
表示在他之后的字或字符串会重复一或多次。
?
表示吻合一或零次。
列出特定的范围,'(cat)(2,4)' 会吻合 'catcat', 'catcatcat', 'catcatcatcat'
[]
可以列出一系列的文字,'[a-z]' 会吻合任何字母,'[a-z]*' 会吻合任何数量的字母。
文字类别,[[:alnum:]] 会吻合任何字母和数字的文字。

程序代码:

SELECT *
FROM department
WHERE name RLIKE 'an';

这会吻合全部有包括 'an' 的部门。

STRCMP() 来比较字符串
STRCMP(s1, s2)
如果字符串相同会传回 0-1 如果 s1 s2 (s1 s2 早出现)
1
如果 s1 s2 (s1 s2 晚出现)

程序代码:

SELECT STRCMP('cat', 'cat');
//
传回 0
SELECT STRCMP('cat', 'dog');
//
传回 -1
SELECT STRCMP('cat', 'ant');
//
传回 1


数字函式

abs(n)

传回 n 的正数

ceiling(n)

n rounded up to the nearest integer

floor(n)

n rounded down to the nearest integer

mod(n,m) div

这两个函式会将 n 除于 mdiv 传回商数,mod() 会传回剩余数。

power(n,m)

n to the power of m

rand(n)

传回 0 1 的随意数。n 可以不提供,如果提供会用来产生随意数。
相同的 n 会产生相同的随意数。

round(n[,d])

n rounded to the nearest integer. if supply d, n will be rounded to d decimal places.

sqrt(n)

传回 n 的平方

mod() 可以是 mod(9,2) 9 mod 2 9 % 2
div
只能用 9 div 2

程序代码:

SELECT 9 mod 2;
//
传回 1
SELECT 9 div 2;
//
传回 4


日期和时间函式
adddate(date, INTERVAL n type)
subdate(date, INTERVAL n type)
这些函式可以用来增加和减少日期。从 date 的日期开始计算,然后增加或减少 INTERVAL 后的日期范围。
你必须提供 n 和他的类型。类型可以是 SECOND, MINUTE, HOUR, DAY, MONTH, YEAR, MINUTE:SECOND (m:s),
HOUR:MINUTE (h:m), DAY_HOUR(d h), YEAR_MONTH (y-m), HOUR_SECOND (h:m:s), DAY_MINUTE (d h:m),
DAY_SECOND (d h:m:s)

curdate(), curtime(), now()
这些函式会传回目前的日期,目前的时间,还有时间和日期。
date_format(date, format)
time_format(time, format)
这些可以用来改变日期和时间的格式。
你必须提供格式的字符串,譬如说 date_format(workdate, '%W %D of %M, %Y')
这会给你 'Monday 16th of June, 2003)
全部可用的格式请看 MySQL 的手册。
dayname(date)
传回日期的名称,例如 Monday
extract(type FROM date)
传回 date 的日期,譬如说 YEAR,他就会传回那个日期的年数。
函式可用的类型跟 adddate() subdate() 的类型相同。
unix_timestamp([date])
传回目前的 Unix 时间。如果跟 date 一起使用,传回的日期会从 date 的日期开始计算。
范例:

程序代码:

SELECT adddate("1999-01-01", INTERVAL "1-6" YEAR_MONTH);
//
传回 2000-07-01
SELECT unix_timestamp(adddate("1999-01-01", INTERVAL "1-6" YEAR_MONTH);
//
传回 962373600

可以用 PHP date() 函式来将 Unix 的时间格式化。

cast
函式
cast
可以用来改变类型,用 cast() convert() 函式。
两个函式相同,但是不同的语法构造。
cast(expression AS type)
convert(expression, type)
cast()
是依照 ANSI 的规格,convert() 是依照 ODBC 的规格。
类型可以是 BINARY, CHAR, DATE, DATETIME, SIGNED (INTEGER), UNSIGNED (INTEGER)
通常 MySQL 会自动帮你改变类型。

其它函式
benchmark(count, expression)
这个函式是用来测试查询的速度,只会传回 0 值。
encrypt(s[,salt])
s 加密用 Unix 的加密系统。salt 字符串是两个字符的字符串,可以不用。
如果没有 crypt 功能,像在 Windows 系统,这个函式会传回 NULL
found_rows()
传回字段的数量,如果没有用 LIMIT
只有在 SELECT 里使用 SQL_CALC_FOUND_ROWS 才能用这个函式。
last_insert_id()
传回最后产生的 AUTO_INCREMENT 值。
md5(s)
传回 128bit MD5 的加密字符串。
password(s)
计算 s 的密码,不建议用这个函式来储存密码。

用于 GROUP BY 的函式
这些还是专门为了 GROUP BY 而写的。
avg(column) -
传回字段的平均值
count(column) -
传回字段的数量
min(column) -
传回字段的最小值
max(column) -
传回字段的最大值
std(column) -
传回字段的标准差
sum(column) -
传回字段的总数

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
图文详解mysql架构原理图文详解mysql架构原理May 17, 2022 pm 05:54 PM

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于架构原理的相关内容,MySQL Server架构自顶向下大致可以分网络连接层、服务层、存储引擎层和系统文件层,下面一起来看一下,希望对大家有帮助。

mysql的msi与zip版本有什么区别mysql的msi与zip版本有什么区别May 16, 2022 pm 04:33 PM

mysql的msi与zip版本的区别:1、zip包含的安装程序是一种主动安装,而msi包含的是被installer所用的安装文件以提交请求的方式安装;2、zip是一种数据压缩和文档存储的文件格式,msi是微软格式的安装包。

mysql怎么去掉第一个字符mysql怎么去掉第一个字符May 19, 2022 am 10:21 AM

方法:1、利用right函数,语法为“update 表名 set 指定字段 = right(指定字段, length(指定字段)-1)...”;2、利用substring函数,语法为“select substring(指定字段,2)..”。

mysql怎么替换换行符mysql怎么替换换行符Apr 18, 2022 pm 03:14 PM

在mysql中,可以利用char()和REPLACE()函数来替换换行符;REPLACE()函数可以用新字符串替换列中的换行符,而换行符可使用“char(13)”来表示,语法为“replace(字段名,char(13),'新字符串') ”。

mysql怎么将varchar转换为int类型mysql怎么将varchar转换为int类型May 12, 2022 pm 04:51 PM

转换方法:1、利用cast函数,语法“select * from 表名 order by cast(字段名 as SIGNED)”;2、利用“select * from 表名 order by CONVERT(字段名,SIGNED)”语句。

MySQL复制技术之异步复制和半同步复制MySQL复制技术之异步复制和半同步复制Apr 25, 2022 pm 07:21 PM

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于MySQL复制技术的相关问题,包括了异步复制、半同步复制等等内容,下面一起来看一下,希望对大家有帮助。

mysql怎么判断是否是数字类型mysql怎么判断是否是数字类型May 16, 2022 am 10:09 AM

在mysql中,可以利用REGEXP运算符判断数据是否是数字类型,语法为“String REGEXP '[^0-9.]'”;该运算符是正则表达式的缩写,若数据字符中含有数字时,返回的结果是true,反之返回的结果是false。

带你把MySQL索引吃透了带你把MySQL索引吃透了Apr 22, 2022 am 11:48 AM

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了mysql高级篇的一些问题,包括了索引是什么、索引底层实现等等问题,下面一起来看一下,希望对大家有帮助。

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Tools

SublimeText3 English version

SublimeText3 English version

Recommended: Win version, supports code prompts!

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Integrate Eclipse with SAP NetWeaver application server.

WebStorm Mac version

WebStorm Mac version

Useful JavaScript development tools

SublimeText3 Linux new version

SublimeText3 Linux new version

SublimeText3 Linux latest version

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.