SQL查询 显示字段中不含某字符串的所有记录

说实话,你这段SQL写法有点特别啊。
not not like这叠否定词看着就费劲,我当年刚接触SQL时也容易犯这种迷糊。
你确定是想找不包含"中国人"这三个字的所有记录吗?
我猜你可能是想用NOT LIKE '%中国人%'来筛选,但写反了两个NOT。
标准的写法应该是把NOT放在最前面,就像这样:
sql SELECT FROM table_name WHERE NOT LIKE '%中国人%'
这行代码的意思就是从table_name这张表里挑出那些不含"中国人"这三个连续字符的行。
注意这里用的是LIKE,不是=,因为LIKE是做模糊匹配的。

有意思的是,这个查询在实际用例里还挺常见的。
比如我之前在处理用户评论数据时,就遇到过要过滤掉所有提到"中国人"的恶评。
当时用的就是NOT LIKE '%中国人%',瞬间就把那些极端言论筛出来了。

不过有几点得注意:1 . 这里是区分大小写的(取决于数据库设置),如果需要忽略大小写可能要额外处理;2 . 如果你只想过滤掉字面等于"中国人"的记录,而不是包含"中国人"的,那应该用或者!=,比如WHERE column_name '中国人'。

数据我记得是X左右,但建议你核实下表名和字段名写对没。
这块我没亲自跑过,不过逻辑上NOT LIKE '%中国人%'应该是这个意思。

oracle sql 判断 字段是否是汉字

这就是坑。
别信。
别这么干。