- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
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 用户表原始数据
1
|
SELECT
*
FROM
user
WHERE
username
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的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我需要为登录用户生成一个建议列表。基本上是“既然你喜欢这些东西,而其他喜欢这些东西的人也喜欢这些东西,那么你可能也会喜欢这些东西”。 我可能会想出一个不错的算法来产生这样的结果,但在我重新发明轮子之前
此查询中有许多参数是用户可调整的,我希望用户能够创建一些文本文件,使用 sqlite3 db.sqlite ".read query.sql" > result.csv 运行查询,而不是直接将它们编辑
这个问题在这里已经有了答案: MySQL query finding values in a comma separated string (11 个回答) 11 个月前关闭。 我有一个名为 pape
我已将以下内容添加到我的 Blogger 模板中,以便在我的每个 Blogger 帖子上添加一个“赞”按钮: document.write('<iframe src="htt
当我点击“推荐”时,按钮打开的窗口隐藏(不可见)在页脚后面。其实我有截图来准确解释它:http://www.diigo.com/item/image/1q1ia/tw30 当然是XFBML,因为我知道
我在 facebook 上创建了一个页面“全民教育”。在我的网站中,我想提供一个点赞按钮来点赞此页面,而不是url,并且还想显示网站中该页面收到的点赞数以及点赞按钮。我使用了“添加这个”,但它显示了该
这个问题在这里已经有了答案: SQL Server, combining LIKE and IN? (3 个答案) 关闭 6 年前。 我想准备一个查询: SELECT name FROM Emplo
我有一个包含 200 条记录的表,其中 10 条记录的文本包含单词“TAX”。 当我执行时 Select * from tbl1 WHERE [TextCol] LIKE '%TAX%' 然后我正确地
我要执行查询: ---------------------- |name | ---------------------- |data
嗨,我正在为一个我没有设计的数据库编写 MySQL 请求,目前无法真正更改,我有一个问题,我还没有测试过这个,所以它可能按设计工作,但我没有当然。 所以我正在搜索的表只有三列 id、标题和描述,但描述
我已经尽力把这个问题说得很透彻了,所以如果你不耐烦,就跳到最后看看真正的问题是什么...... 我正在努力调整我们其中一个数据库中某些搜索功能的实现方式。为此,我正在向我们的应用程序 API 添加一些
我正在学习 MySQL,我尝试在查询中将“NOT LIKE”与“OR”结合起来,但没有成功。 假设我有一个 table1,其中有一列名为“word”,如下所示: word
Perl-Selenium 还提供了 Test::More 的标准方法,例如 ok()、like()、is() 等,也作为对象方法,例如$sel->like()。 ($sel 是 selenium p
我正在开发这个网站的前端:http://oq.totaleclips.com ,并从以下位置开发它:http://dev-jon.c2mx-hrd.appspot.com 我移动了社交按钮以使 UI
我正在创建一个搜索功能。我的 sql 查询使用 LIKE和 OR LIKE在 where 子句中。我正在搜索的表中的字段之一称为 quantity_types它只存储与在另一个表中找到的值相对应的代码
我有一个名为 platform 的表,其中有一列名为 entityid。 entityid 中的数据应该遵循 n.n.n 格式(其中 n = 1 个或多个数字,第一个数字是站点 ID)。 如果我运行这
所以,我正在练习考试(高中水平),虽然我们从未想过 SQL,但在处理 MS Access 时有必要了解一点. 任务是选择名称与其所属城镇不对应的区域ID。 解决方案中有以下示例: SELECT nam
1.作用与语法描述 作用: 正则表达式是使用指定字符串来描述、匹配一系列符合某个句法规则的字符串。许多程序设计语言都支持利用正则表达式进行字符串操作。MongoDB 使用 $regex 操作符来设
我们有一个网站,其中有文章页面,每个页面上都有一个类似 Facebook 的按钮,并与该文章 URL(URL 编码)相关联。例如,在一些带有 url http://www.site.com/artic
我在理解 SQL 中的 LIKE 和 NOT LIKE 运算符时遇到问题。这是我执行的查询: select serial_number from UNIT U group by serial_numb
我是一名优秀的程序员,十分优秀!