mysql 过滤掉以he开头的单词,但不过滤掉hello、heabc、hecde
时间: 2023-07-10 16:18:44 浏览: 130
可以使用正则表达式来过滤掉以he开头的单词,但不过滤掉hello、heabc、hecde。具体的SQL语句如下:
```sql
SELECT * FROM table_name WHERE column_name NOT REGEXP '^he([^a-zA-Z]|$)';
```
其中,`table_name`为表名,`column_name`为要过滤的列名。这条SQL语句使用了正则表达式来匹配以he开头的单词,但不匹配hello、heabc、hecde。具体来说,正则表达式中的:
- `^` 表示匹配字符串的开头;
- `he` 表示匹配以he开头的字符串;
- `[^a-zA-Z]` 表示不匹配后面跟着字母的字符,即匹配以he开头的单词;
- `|` 表示或者;
- `$` 表示匹配字符串的结尾。
因此,这条SQL语句可以过滤掉以he开头的单词,但不过滤掉hello、heabc、hecde。
相关问题
mysql 过滤掉以he开头的单词,但不过滤掉hello、heabc、hecde,不用正则表达式
可以使用MySQL的字符串函数来实现过滤掉以he开头的单词,但不过滤掉hello、heabc、hecde。具体的SQL语句如下:
```sql
SELECT * FROM table_name WHERE (LEFT(column_name, 2) != 'he') OR (LEFT(column_name, 5) = 'hello') OR (LEFT(column_name, 5) = 'heabc') OR (LEFT(column_name, 5) = 'hecde');
```
其中,`table_name`为表名,`column_name`为要过滤的列名。这条SQL语句使用了MySQL的`LEFT()`函数来获取字符串的前n个字符,然后通过比较来实现过滤。具体来说:
- `LEFT(column_name, 2) != 'he'` 表示如果字符串的前两个字符不是he,则返回该行数据;
- `LEFT(column_name, 5) = 'hello'` 表示如果字符串的前五个字符是hello,则返回该行数据;
- `LEFT(column_name, 5) = 'heabc'` 表示如果字符串的前五个字符是heabc,则返回该行数据;
- `LEFT(column_name, 5) = 'hecde'` 表示如果字符串的前五个字符是hecde,则返回该行数据。
因此,这条SQL语句可以过滤掉以he开头的单词,但不过滤掉hello、heabc、hecde。
阅读全文