MySQL正则表达式与常用操作总结

需积分: 10 3 下载量 114 浏览量 更新于2024-09-09 1 收藏 18KB DOCX 举报
"这是关于MySQL的一些必会必知的关键知识点,主要涵盖了正则表达式在查询中的应用、字符串操作以及字段的拼接与算术计算。这些内容都是在MySQL数据库操作中非常实用的技能。" 在MySQL中,正则表达式是进行复杂文本匹配的重要工具。以下是一些使用示例: 1. 使用`REGEXP`进行模糊匹配:`SELECT prod_name FROM products WHERE prod_name REGEXP '.000' ORDER BY prod_name;` 这个查询将返回所有产品名称中包含'.000'的记录,并按产品名称排序。 2. `BINARY`关键字用于区分大小写匹配:`WHERE prod_name REGEXP BINARY 'JetPack.000'` 在这个例子中,匹配时会考虑字母的大小写。 3. 使用`OR`操作符进行多个条件匹配:`SELECT prod_name FROM products WHERE prod_name REGEXP '1000|2000' ORDER BY prod_name;` 这将找到产品名称中包含'1000'或'2000'的记录。 4. 匹配字符之一:`SELECT prod_name FROM products WHERE prod_name REGEXP '[123]ton' ORDER BY prod_name;` 和 `SELECT prod_name FROM products WHERE prod_name REGEXP '1|2|3ton' ORDER BY prod_name;` 这两个查询都能找到以'1', '2', 或 '3'开头,后跟'ton'的产品名称。 5. 匹配字符范围:`SELECT prod_name FROM products WHERE prod_name REGEXP '[1-5]ton' ORDER BY prod_name;` 会找到以1到5之间数字开头,后跟'ton'的产品名称。 6. 用反斜杠`\`转义特殊字符:`SELECT vend_name FROM vendors WHERE vend_name REGEXP '\\.' ORDER BY vend_name;` 这会匹配名称中含有句点"."的供应商。 7. 字符类匹配和多次实例:`SELECT prod_name FROM products WHERE prod_name REGEXP '\\([0-9]sticks?\\)' ORDER BY prod_name;` 会找到名称中包含"()内有数字sticks?"的记录。`[[:digit:]]{4}`则匹配连续4位数字。 8. `LIKE`与`REGEXP`的区别:`LIKE`匹配整个字符串,而`REGEXP`则可以匹配子串。 9. `CONCAT()`函数用于字段拼接:`SELECT CONCAT(vend_name, '(', vend_country, ')') FROM vendors ORDER BY vend_name;` 将供应商名称和国家信息拼接在一起。 10. 使用别名:`SELECT CONCAT(RTrim(vend_name), '(', RTrim(vend_country), ')') AS vend_title FROM vendors ORDER BY vend_name;` 这里使用`AS`关键字为拼接后的字段创建了别名`vend_title`。 11. 执行算术计算:虽然示例中未给出具体的算术计算示例,但在MySQL中,你可以直接在查询中进行数学运算,如`SELECT prod_id, quantity * price AS total_price FROM products;` 这将计算每个产品的总价。 以上内容涵盖了MySQL中一些基本的正则表达式操作、字符串处理和数据计算技巧,对于理解和提升MySQL查询能力非常有帮助。通过熟练掌握这些知识点,你可以在实际工作中更高效地处理数据查询任务。