MySQL 如何使用LIKE通配符在列中进行(不区分大小写)搜索

MySQL 如何使用LIKE通配符在列中进行(不区分大小写)搜索

在数据库中,有时候我们需要按照模式进行搜索,比如查找一个特定的单词或者以某个字母开头的所有记录。在这种情况下,我们可以使用SQL中的LIKE操作符。LIKE操作符与通配符结合使用,可以在列中进行模式匹配搜索。

阅读更多:MySQL 教程

操作符

下面是LIKE操作符所支持的通配符:

  • %:这个表示零个或多个字符。
  • _:一个下划线代表一个任意字符。
  • []:方括号表示一个字符集合。可以匹配方括号内任意一个字符,不区分大小写。

示例

让我们看一个示例表格“users”:

id name email
1 Tom tom@gmail.com
2 Sam sam@yahoo.com
3 Tim tim@hotmail.com
4 Amy amy@gmail.com

假设我们想搜索所有以“T”开头的名称,我们可以使用以下SQL语句:

SELECT * FROM users WHERE name LIKE 'T%';

这将返回id为1、3的两行。

如需在列中搜索不同类型的字符,我们可以使用字符集合方括号。例如,我们想查找所有邮件地址以“G”或“Y”开头的记录:

SELECT * FROM users WHERE email LIKE '[GY]%';

这将返回id为1、4的两行。

要查找所有包含“am”字符串的名称,您可以执行以下操作:

SELECT * FROM users WHERE name LIKE '%am%';

这将返回id为1、4的两行,因为名称包含“Tom”和“Amy”。

最后,如果您想查找所有包含“in”或以“s”结尾的名称,请执行以下操作:

SELECT * FROM users WHERE name LIKE '%in%' OR name LIKE '%s';

这将返回id为2、3、4的三行。

不区分大小写搜索

如果您希望进行不区分大小写的搜索,需要在LIKE操作符之后添加 i 标记。例如,如果您想搜索所有名称中包含字母“a”的记录:

SELECT * FROM users WHERE name LIKE '%a%' COLLATE NOCASE;

这将返回id为1、2、4的三行,因为名称中包含字母“a”。

结论

在数据库中进行模式匹配搜索是一项强大而灵活的技能。使用SQL中的LIKE操作符和通配符,您可以在列中查找特定模式的数据。请记住,加上i标记,您还可以进行不区分大小写的搜索。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程