MySQL中的字符串比较函数

菱川夏嫡

菱川夏嫡

2016-02-19 16:07

想要天天向上,就要懂得享受学习。图老师为大家推荐MySQL中的字符串比较函数,精彩的内容需要你们用心的阅读。还在等什么快点来看看吧!

  根据,MySQL 会自动将数字转化为字符串,反之亦然。

mysql SELECT 1+'1';
- 2
mysql SELECT CONCAT(2,' test');
- '2 test'

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

  若想要将数字明确地转化为字符串,可使用 CAST()或 CONCAT()函数:

mysql SELECT 38.8, CAST(38.8 AS CHAR);
- 38.8, '38.8'
mysql SELECT 38.8, CONCAT(38.8);
- 38.8, '38.8'

  CAST() 比较可取。

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

  若已经对一个字符串函数给定一个二进制字符串作为参数, 则所得到的结果字符串也是一个二进制字符串。一个转化为字符串的数字被作为二进制字符串对待。这仅会对比较结果产生影响。

  一般而言, 若字符串比较中任意一个表达式是区分大小写的,则执行比较时也区分大小写。

  ◆ expr LIKE pat [ESCAPE 'escape-char']

  模式匹配,使用SQL简单正规表达式比较。返回1 (TRUE) 或 0 (FALSE)。 若 expr 或 pat 中任何一个为 NULL,则结果为 NULL。

  模式不需要为文字字符串。例如,可以被指定为一个字符串表达式或表列。

  在模式中可以同LIKE一起使用以下两种通配符:

mysql SELECT 'David!' LIKE 'David_';
- 1
mysql SELECT 'David!' LIKE '%D%v%';
- 1

  若要对通配符的文字实例进行检验, 可将转义字符放在该字符前面。如果没有指定 ESCAPE字符, 则假设为‘’。

mysql SELECT 'David!' LIKE 'David_';
- 0
mysql SELECT 'David_' LIKE 'David_';
- 1

  要指定一个不同的转义字符,可使用ESCAPE语句:

mysql SELECT 'David_' LIKE 'David|_' ESCAPE '|';
- 1

  转义序列可以为空,也可以是一个字符的长度。 从 MySQL 5.1.2开始, 如若 NO_BACKSLASH_ESCAPES SQL模式被激活, 则该序列不能为空。

  以下两个语句举例说明了字符串比较不区分大小写,除非其中一个操作数为二进制字符串:

mysql SELECT 'abc' LIKE 'ABC';
- 1
mysql SELECT 'abc' LIKE BINARY 'ABC';
- 0

  在MySQL中, LIKE 允许出现在数字表达式中。 (这是标准SQL LIKE 的延伸)。

mysql SELECT 10 LIKE '1%';
- 1

  注释: 由于 MySQL在字符串中使用 C转义语法(例如, 用‘n’代表一个换行字符),在LIKE字符串中,必须将用到的‘’双写。例如, 若要查找 ‘n’, 必须将其写成 ‘’。而若要查找 ‘’, 则必须将其写成 it as ‘’;原因是反斜线符号会被语法分析程序剥离一次,在进行模式匹配时,又会被剥离一次,最后会剩下一个反斜线符号接受匹配。

  ◆ expr NOT LIKE pat [ESCAPE 'escape-char']

  这相当于 NOT (expr LIKE pat [ESCAPE 'escape-char'])。

  ◆ expr NOT REGEXP pat expr NOT RLIKE pat

  这相当于NOT (expr REGEXP pat)。

  ◆ expr REGEXP pat expr RLIKE pat

  执行字符串表达式 expr 和模式pat 的模式匹配。该模式可以被延伸为正规表达式。正规表达式的语法在附录G:MySQL正则表达式中有详细讨论。若expr 匹配 pat,则返回 1; 否则返回0。若 expr 或 pat 任意一个为 NULL, 则结果为 NULL。 RLIKE 是REGEXP的同义词, 作用是为mSQL 提供兼容性。

  模式不需要为文字字符串。例如,可以被指定为一个字符串表达式或表列。

  注释:由于在字符串中, MySQL使用 C 转义语法 (例如, 用‘n’来代表换行字符 ),在REGEXP字符串中必须将用到的‘’ 双写。

  REGEXP 不区分大小写, 除非将其同二进制字符串同时使用。

mysql SELECT 'Monty!' REGEXP 'm%y%%';
- 0
mysql SELECT 'Monty!' REGEXP '.*';
- 1
mysql SELECT 'new*n*line' REGEXP 'new*.*line';
- 1
mysql SELECT 'a' REGEXP 'A', 'a' REGEXP BINARY 'A';
- 1  0
mysql SELECT 'a' REGEXP '^[a-d]';
- 1

  在确定字符类型时,REGEXP 和 RLIKE 使用当前字符集 (默认为cp1252 Latin1 )。 警告:这些操作符不支持多字节字元。

  ◆ STRCMP(expr1,expr2)

  若所有的字符串均相同,则返回STRCMP(),若根据当前分类次序,第一个参数小于第二个,则返回  -1,其它情况返回 1 。

mysql SELECT STRCMP('text', 'text2');
- -1
mysql SELECT STRCMP('text2', 'text');
- 1
mysql SELECT STRCMP('text', 'text');
- 0

  在执行比较时,STRCMP() 使用当前字符集。这使得默认的比较区分大小写,当操作数中的一个或两个都是二进制字符串时除外。

展开更多 50%)
分享

猜你喜欢

MySQL中的字符串比较函数

编程语言 网络编程
MySQL中的字符串比较函数

mysql 字符串函数收集比较全

编程语言 网络编程
mysql 字符串函数收集比较全

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

mysql的字符串函数

MySQL mysql数据库
mysql的字符串函数

JavaScript中split字符串函数

Web开发
JavaScript中split字符串函数

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

ASP中字符串函数的应用

ASP
ASP中字符串函数的应用

java 字符串匹配函数

Web开发
java 字符串匹配函数

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

在Word2010文档中创建构建基块

在Word2010文档中创建构建基块

Windows 10正式版为什么没有休眠选项?

Windows 10正式版为什么没有休眠选项?
下拉加载更多内容 ↓