gpt4 book ai didi

MySQL中LIKE子句相关使用的学习教程

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章MySQL中LIKE子句相关使用的学习教程由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

MySQL LIKE 语法 LIKE 运算符用于 WHERE 表达式中,以搜索匹配字段中的指定内容,语法如下:

?
1
2
WHERE column LIKE pattern
WHERE column NOT LIKE pattern

在 LIKE 前面加上 NOT 运算符时,表示与 LIKE 相反的意思,即选择 column 不包含 pattern 的数据记录。 LIKE 通常与通配符 % 一起使用,% 表示通配 pattern 中未出现的内容。而不加通配符 % 的 LIKE 语法,表示精确匹配,其实际效果等同于 = 等于运算符。 LIKE 使用实例 下面是一个使用 LIKE 查询数据的例子: user 用户表原始数据

MySQL中LIKE子句相关使用的学习教程

?
1
SELECT * FROM user WHERE username LIKE '小%'

返回查询结果如下:

MySQL中LIKE子句相关使用的学习教程

该例子是找出所有 username 以“小” 开头的记录,小% 表示以“小”字符开头,而后面可以是任意字符。同样, %小 表示以“小”结尾,而 %小%则表示包含“小”这个字符(并一同包括 '%小' 与 '小%' 这两种情况)。 下面这个例子,将查询出所有 username 中字段任意位置包含 a 字符的记录:

?
1
SELECT * FROM user WHERE username LIKE '%a%'

MySQL LIKE 大小写 MySQL LIKE 匹配字符时,默认是不区分大小写的,如果需要在匹配的时候区分大小写,可以加入 BINARY 操作符:

?
1
2
SELECT * FROM user WHERE username LIKE BINARY '%azz%'
SELECT * FROM user WHERE username LIKE BINARY '%aZZ%'

BINARY 操作符表示按照二进制进行比较,因此加上该操作符后,便可以严格区分大小写,因此以上两条 SQL 查询出来的内容是不同的。 MySQL LIKE 中文字符匹配 由于数据存储编码问题,在某些情况下,MySQL 进行 LIKE 搜索返回的数据中除了符合要求的数据外,往往还会返回许多不相干的数据。这时候也需要在 LIKE 后面加上 BINARY 操作符以进行二进制比较:

?
1
SELECT * FROM user WHERE username LIKE BINARY '%小%'

提示 当在 LIKE 匹配时加上 BINARY 操作符后,则会严格区分英文大小写。因此当检索的内容是中英文混合且需要忽略英文大小写的时候,就会遇到麻烦。为解决此问题,需要引入 MySQL 中的 UPPER() 与 CONCAT() 函数: UPPER():将英文字符串变大写,同UCASE() CONCAT():将多个字符串连接成一个字符串 语法如下:

?
1
2
UPPER (str)
CONCAT(str1,str2,...)

因此当我们要进行中英文混合匹配检索且要忽略英文大小写时,可以使用如下例所示的 SQL 语句: SELECT * FROM username WHERE UPPER(username) LIKE BINARY CONCATt('%',UPPER('a中文b'),'%') 在该 SQL 中,将搜索的字段及检索的内容都进行大写转换后,再进行二进制匹配。 LIKE 运算符的效率 LIKE 运算符要对字段数据进行逐一扫描匹配,实际执行的效率是较差的,哪怕该字段已经建有索引(a% 这种方式会用到索引)。当数据量较大时,要尽可能的减少 LIKE 运算符的使用,也没有太多优化的余地。 在PHP脚本使用LIKE子句 可以使用WHERE ... LIKE子句类似的语法在PHP 的 mysql_query() 函数。此函数用于执行SQL命令,紧接着另一个PHP mysql_fetch_array()函数可用于获取所有选定的数据,如果WHERE ... LIKE子句连同SELECT命令一起使用.

但是,如果WHERE ... LIKE子句正在连同DELETE 或UPDATE命令使用,PHP函数不再是必须的.

示例 试试下面的例子,tutorials_tbl表所有记录其作者姓名包含jay将被返回:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
$dbhost = 'localhost' ;
$dbuser = 'root' ;
$dbpass = '' ;
$conn = mysql_connect( $dbhost , $dbuser , $dbpass );
if (! $conn )
{
  die ( 'Could not connect: ' . mysql_error());
}
$sql = 'SELECT tutorial_id, tutorial_title,
         tutorial_author, submission_date
     FROM tutorials_tbl
     WHERE tutorial_author LIKE "%jay%" ';
 
mysql_select_db( 'test' );
$retval = mysql_query( $sql , $conn );
if (! $retval )
{
  die ( 'Could not get data: ' . mysql_error());
}
while ( $row = mysql_fetch_array( $retval , MYSQL_ASSOC))
{
   echo "Tutorial ID :{$row['tutorial_id']} <br> " .
      "Title: {$row['tutorial_title']} <br> " .
      "Author: {$row['tutorial_author']} <br> " .
      "Submission Date : {$row['submission_date']} <br> " .
      "--------------------------------<br>" ;
}
echo "Fetched data successfully\n" ;
mysql_close( $conn );
?>

  。

最后此篇关于MySQL中LIKE子句相关使用的学习教程的文章就讲到这里了,如果你想了解更多关于MySQL中LIKE子句相关使用的学习教程的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com