mysql 模糊查询语句示例
时间: 2024-10-18 11:02:46 浏览: 43
MySQL模糊查询通常用于在数据中查找包含特定模式或部分字符串的结果。下面是一些基本的模糊查询语句示例:
1. **LIKE运算符**:
- `SELECT * FROM table_name WHERE column_name LIKE '%pattern%'`;
这将返回所有column_name列中包含`pattern`的记录,`%`是一个通配符,代表任意字符序列。
2. **ILIKE(case-insensitive LIKE)**(适用于某些MySQL版本或全文搜索引擎):
- `SELECT * FROM table_name WHERE column_name ILIKE '%pattern%'`;
类似于LIKE,但是不区分大小写。
3. **REGEXP(正则表达式匹配)**:
- `SELECT * FROM table_name WHERE column_name REGEXP 'pattern'`;
正则表达式提供更复杂的模式匹配,如 `SELECT * FROM table_name WHERE column_name REGEXP '[A-Z]'` 可以找出所有大写字母。
4. **MATCH AGAINST**(针对全文索引):
- `SELECT * FROM table_name WHERE MATCH(column_name) AGAINST ('pattern')`;
如果表有全文索引,这可用于搜索包含给定模式的记录。
**示例:**
假设我们有一个名为`employees`的表,想查询名字中包含“John”的员工:
```sql
-- LIKE方式
SELECT * FROM employees WHERE name LIKE '%John%';
-- 使用REGEXP
SELECT * FROM employees WHERE name REGEXP '^[^J]*J[^ ]* [^J]*J[^ ]*$'; // 匹配名字全由J组成
-- 对应全文索引
CREATE FULLTEXT INDEX idx_name ON employees (name);
SELECT * FROM employees WHERE MATCH(name) AGAINST('John');
```
阅读全文