mysql 过滤掉以he开头的单词,但不过滤掉hello、heabc、hecde,不用正则表达式
时间: 2023-07-10 11:18:44 浏览: 42
可以使用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。
相关问题
mysql 过滤掉以he开头的单词,但不过滤掉hello、heabc、hecde
可以使用正则表达式来过滤掉以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的怎么写
您可以使用MySQL中的NOT LIKE运算符来实现这个需求。以下是一个例子:
```
SELECT * FROM your_table WHERE your_column NOT LIKE 'he%';
```
上述SQL语句中,我们使用了NOT LIKE运算符来匹配不以"he"开头的字符串。%符号表示任意数量的字符,因此不匹配以"he"开头的所有字符串,如"hello"、"help"等。这样就可以过滤掉以"he"开头的值,但不会过滤掉"hello"。