这句简单的sql语句哪里错了?
我要判断字符串里有没有问号‘?’select *
from table_a
where answer not like '%?%'
or answer not like '%?%';但是选出来的数据里还有问号?而且是连续多个问号,例如“我的天???下雨了”
到底哪里错了!
我要判断字符串里有没有问号‘?’select *
from table_a
where answer not like '%?%'
or answer not like '%?%';但是选出来的数据里还有问号?而且是连续多个问号,例如“我的天???下雨了”
到底哪里错了!
我是这样写的。还是会选出有问号的数据出来。select *
from table_a
where ...
and id not in (select id
from table_a
where answer like '%?%'
or answer like '%?%')
select * from table_a
where answer not like '%?%' or answer not like '%?%';
改为
where answer not like '%?%' and answer not like '%?%';
from table_a
where ...
and id not in (select id
from table_a
where answer like '%?%'
or answer like '%?%')
from table_a
where answer like '%?%'
or answer like '%?%'
执行结果包括那条记录吗?
from table_a
where answer like '%?%'
or answer like '%?%'
这个的结果里面居然没有那个带问号的id
from table_a
where ...
and id not in (select distinct id
from table_a
where answer like '%?%'
or answer like '%?%')
更正一下
%?%这样写是有可能把含连续3个问号的记录给选中的,其实你既然能选中连续3个问号的,那就已经说明了你只是想选出“只要包含问号”的记录就行了的呀
这句看起来没有问题了,distinct有没有无所谓的。
from table_a
where ...
and id not in (select id
from table_a
where answer like '%?%'
or answer like '%?%')
这个基本上没什么问题,不过如果ID或ANSWMER有NULL的时候会有问题
这样的话 就把某列中包括问号的全部去掉 剩下不包括问号的 信息 就会显示出来。。
不知道 lz 是不是这个意思?
按照LZ的描述,sql语句应该是没有问题的,所以建议LZ仔细检查一下其他方面
我建了一个临时表tb_test测试时正常的
id remart
---------------------------------
1 今天天气不好????的确
2 今天天气很好???的确
3 今天天气不好也不坏SQL> select id from tb_test where re like '%?%' or re like '%?%'; ID
----------
1
2SQL> select id from tb_test
2 where id not in (select id from tb_test where re like '%?%' or re like '%?%'); ID
----------
3SQL>
现在问题是LZ的这个语句中查不到那个带问号的记录(而这里应该能够找到那条记录)
那么LZ应该找到那条记录,查看一下里面问号是如何写进去的?
可以将那个问号复制出来,然后粘贴到like语句后面进行查询,看能不能查出来?
select * from table_1 where answer not like '%?%' lz是不把引号'打成中文的了啊
不知道lz的不能过滤是怎么回事?
from table_a
where TO_SINGLE_BYTE(answer) not like '%?%'