searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

mysql字符串检索的两种方式

2023-07-07 09:59:20
113
0

1. 使用LIKE操作符
在SQL语句中,LIKE操作符用于根据指定的模式搜索字符串值。它通常与通配符一起使用,在查询时不需要完全匹配。

LIKE操作符支持两个通配符:百分号(%)和下划线()。其中,百分号(%)表示零个、一个或多个字符,下划线()表示单个字符。例如:

SELECT * 
FROM students 
WHERE name LIKE 'Tom%';
这个查询将返回以“Tom”开头的所有学生记录。在此示例中,“%”是通配符,表示“Tom”之后可以是任意字符或字符集。

除此之外,还可以放在关键词的不同地方进行检索:

搜索以特定字符串开头的记录:
SELECT * 
FROM products 
WHERE product_name LIKE 'apple%';

搜索包含特定字符串的记录:
SELECT * 
FROM products 
WHERE product_name LIKE '%apple%';

搜索以特定字符串结尾的记录:
SELECT * 
FROM products 
WHERE product_name LIKE '%juice';

2. 使用正则表达式
mysql支持正则表达式,可以使用 REGEXP 或 RLIKE 操作符进行正则匹配操作。

比如:
匹配以 abc 开头的所有字符串:
SELECT * FROM 
table_name WHERE 
column_name REGEXP '^abc';

匹配包含 abc 的所有字符串:
SELECT * 
FROM table_name 
WHERE column_name REGEXP 'abc';

二者区别
语法不同:LIKE使用SQL通配符进行模式匹配,而REGEXP使用正则表达式进行模式匹配。
功能不同:LIKE仅支持通配符"*"和"?",无法支持复杂的模式匹配;而REGEXP支持更多的正则表达式元字符,功能更为强大。
性能不同:LIKE由于使用较简单的通配符进行匹配,所以执行效率比REGEXP更高。
匹配方式不同:LIKE使用在字符串前后添加通配符进行模式匹配,例如:'ABC%',表示以'ABC'字符串开头的所有字符串;而REGEXP匹配正则表达式中定义的模式,例如:'ABC.*',表示以'ABC'字符串开头,并后跟任意字符的所有字符串。
精度不同:因为LIKE模式匹配中只支持"*"和"?"两种通配符,所以精度较低;而REGEXP则支持更多复杂的正则表达式元字符,可以进行更精确的模式匹配。

0条评论
作者已关闭评论
t****m
98文章数
1粉丝数
t****m
98 文章 | 1 粉丝
t****m
98文章数
1粉丝数
t****m
98 文章 | 1 粉丝
原创

mysql字符串检索的两种方式

2023-07-07 09:59:20
113
0

1. 使用LIKE操作符
在SQL语句中,LIKE操作符用于根据指定的模式搜索字符串值。它通常与通配符一起使用,在查询时不需要完全匹配。

LIKE操作符支持两个通配符:百分号(%)和下划线()。其中,百分号(%)表示零个、一个或多个字符,下划线()表示单个字符。例如:

SELECT * 
FROM students 
WHERE name LIKE 'Tom%';
这个查询将返回以“Tom”开头的所有学生记录。在此示例中,“%”是通配符,表示“Tom”之后可以是任意字符或字符集。

除此之外,还可以放在关键词的不同地方进行检索:

搜索以特定字符串开头的记录:
SELECT * 
FROM products 
WHERE product_name LIKE 'apple%';

搜索包含特定字符串的记录:
SELECT * 
FROM products 
WHERE product_name LIKE '%apple%';

搜索以特定字符串结尾的记录:
SELECT * 
FROM products 
WHERE product_name LIKE '%juice';

2. 使用正则表达式
mysql支持正则表达式,可以使用 REGEXP 或 RLIKE 操作符进行正则匹配操作。

比如:
匹配以 abc 开头的所有字符串:
SELECT * FROM 
table_name WHERE 
column_name REGEXP '^abc';

匹配包含 abc 的所有字符串:
SELECT * 
FROM table_name 
WHERE column_name REGEXP 'abc';

二者区别
语法不同:LIKE使用SQL通配符进行模式匹配,而REGEXP使用正则表达式进行模式匹配。
功能不同:LIKE仅支持通配符"*"和"?",无法支持复杂的模式匹配;而REGEXP支持更多的正则表达式元字符,功能更为强大。
性能不同:LIKE由于使用较简单的通配符进行匹配,所以执行效率比REGEXP更高。
匹配方式不同:LIKE使用在字符串前后添加通配符进行模式匹配,例如:'ABC%',表示以'ABC'字符串开头的所有字符串;而REGEXP匹配正则表达式中定义的模式,例如:'ABC.*',表示以'ABC'字符串开头,并后跟任意字符的所有字符串。
精度不同:因为LIKE模式匹配中只支持"*"和"?"两种通配符,所以精度较低;而REGEXP则支持更多复杂的正则表达式元字符,可以进行更精确的模式匹配。

文章来自个人专栏
文章 | 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0