SELECT * FROM table_name WHERE column_name LIKE '%search_term%';
在上述代码中,*
表示返回所有列,table_name
表示需要查找的表名,column_name
代表要搜索的列,search_term
代表想要搜索的字符串。
当大家想在一个表的一列中查找以特定字符或字符串开头或结尾的数据时,可以使用以下查询:
SELECT * FROM table_name WHERE column_name LIKE 'search_term%'; -- 搜索以search_term开头的 SELECT * FROM table_name WHERE column_name LIKE '%search_term'; -- 搜索以search_term结尾的
如果大家想匹配特定字符或者字符串中一个特定位置的字符,可以使用下划线_。以下代码会返回包含第三个字符为“a”的行:
SELECT * FROM table_name WHERE column_name LIKE '__a%';
此外,MySQL还支持使用多个LIKE和NOT LIKE来进行复杂的搜索和排除,如下所示:
SELECT * FROM table_name WHERE column_name LIKE '%search_term_1%' AND column_name NOT LIKE '%search_term_2%';
在实际使用LIKE进行查询时,需要注意如下几点:
- 为了避免遍历整个表格,应该尽可能在查询语句中使用索引。LIKE查询不排除使用索引,但是它可能是相对慢的。
- LIKE操作符对性能具有不良影响,在大型数据集中使用时,应该尽可能避免使用。
- LIKE查询不区分大小写。