sql语句中查找某字段中含有某字符串的语句怎么写?

改表中的文件名filename字段中有很多记录是乱码的。有很多?????。
现在我要查找出所有filename中含有?的记录出来,只要含有?,不管是一个?还是多个?。都查找出来。
于是写了以下sql:
select filename from oa_file where filename like '%?%';
结果查出来的结果不符。只有含有一个"?"的可以查出来。请问怎么写呢?
上午解决了。原来数据库中很多?是中文的?问号。。。
我写成这样就ok了。
select * from oa_file where filename like '%??%';
谢谢大家!!!!

select filename from oa_file where filename not like '%[!-¥]%'

或者这个:

select filename from oa_file where filename not like '%[!-?]%'

出现的问题就是问号和问好也是不一样的,比如说英文标点半角的问号是“?”,英文标点全角的问号是“?”但是中文半角问号是“?”中文全角的问号是“?”

这些都是不一样的,你搜出来的都是带有英文半角问号的文件。

扩展资料:

SQL中的字段“包含”与“包含于”字符串的写法

1、查询表中某字段值“包含”某字符串的所有记录的方法

假如表中有一个name字段,查询name包含“张三”的所有记录,可以这样写sql:

Stirng strsql="SELECT * FROM 表名 WHERE name LIKE ’%"+"张三"+"%’";

2、查询某字段值“包含于”某个字符串的所有记录的方法

如果查询表中name字段包含于字符串“张三是个好学生”的所有记录,可以这样写sql:

String strsql="SELECT * FROM 表名 WHERE INSTR(’张三是个好学生’,name)>0";

即可查询,记录中的name字段值中包括:张、三、是、个、好、学、生、张三、......等所有记录。

注:以上sql字符串中请将全角符号改为半角符号。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-11-26
select filename from oa_file where filename like '%?%';
你这句话肯定是没有问题的——可能出现的问题就是问号和问好也是不一样的!
比如说英文标点半角的问号是“?”,英文标点全角的问号是“?”
但是中文半角问号是“?”中文全角的问号是“?”
这些都是不一样的。你搜出来的都是带有英文半角问号的文件。
以上为我的想法。本回答被提问者采纳
第2个回答  2008-11-12
你试试这个吧:
select filename from oa_file where filename not like '%[!-¥]%'
如果不行就再试试这个:
select filename from oa_file where filename not like '%[!-�]%'

请注意复制LIKE 后面的字符,不要自已写。
原理就是用两个特殊字符包括所有可正常显示的字符
第3个回答  2008-11-12
select filename from oa_file where filename like '%?%';
改成
select filename from oa_file where filename like '%''?''%'
试下..

记得好像?是个占位符吧
第4个回答  2020-05-17

sql语句中查找某字段中含有某字符串的语句怎么写?
select filename from oa_file where filename not like '%[!-¥]%'或者这个:select filename from oa_file where filename not like '%[!-?]%'出现的问题就是问号和问好也是不一样的,比如说英文标点半角的问号是“?”,英文标点全角的问号是“?”但是中文半角问号是“?”中文全角的问号是...

如何用sql语句,判断数据库中某字段的内容,包含于某字符串
1:可以利用CHARINDEX(或者 PATINDEX) 函数返回字符或者字符串在另一个字符串中的起始位置。 SELECT CHARINDEX('ad','rrdadgff') 返回4; 2:可以利用like进行模糊查询, like ‘%字符串%’ 3:利用全文索引

sql语句包含怎么写
sql SELECT * FROM table1 WHERE field1 LIKE '%value1%'对于更复杂的查询,比如在"name"字段中查找包含特定文本的记录,如果目标是"张三",可以这样构造SQL语句:sql String strsql="SELECT * FROM 表名 WHERE name LIKE '%张三%'"如果要查询字段值不仅包含某个字符串的一部分,还需确保整个字符...

如何用sql语句,判断数据库中某字段的内容,包含于某字符串
select * from 表名 where 列名 like '%字符串%'

SQL语句,如何将一个字段中的一部分字符串作为条件查询
字符串中第一个位置始终为1;[ length ]:提取的字符数,如果省略,substr将返回整个字符串;函数功能:截取函数,可以实现提取字符串中指定的字符数;针对本例举例说明:select * from 表名 where substr([D],1,2)=“10”语句功能说明:从指定表中查询D字段第1、2个字符为“10的记录”。

Mysql查找如何判断字段是否包含某个字符串
表中有如下9条记录 想把其中M开头的名字提取出来,可以使用SQL语句:select * from nameinfo where name like 'M%'提示:"%" 可用于定义通配符(模式中缺少的字母)。提取name字段中包含某字符串的SQL如下:select * from nameinfo where name like '%n%'表示提取name字段中包含字母‘n’的记录 ...

SQL语句:查找某字段存在于一字符串,大神帮忙解答一下~~~
试试这个语句:select * from archives where charindex('张三是李四的兄弟,也是何八的儿子',title) > 0 用的是charindex函数判断

sql查询一个字段中有多少个特定字符串
select len(字段名)-len(replace(字段名,'特殊字符','')) from 表名 --比如查询字符串 '123+456+789' 中有多少个加号'+'select len('123+456+789')-len(replace('123+456+789','+','')) from 表名

我需要用sql语句来查询 某个字段值 中包含一个 特定字符串 的所有数据...
假设字段为名 Samp 查询Samp中包含“#”这个字符,表名为 A SELECT * FROM A WHERE Samp like '%#%' ;值得注意的是你查询的特定字符串中,包含“_”或“%”就要使用转义符“\\”例如你要查询的特定字符串是“_@”SELECT * FROM A WHERE Samp like '%\\_@%' ESCAPE '\\' ;...

现在用sql语句查出来字段里包含某个字符串的所有记录怎么查
一般用substring函数截取出特定字段,如--用户姓名第二个字是'大'字的select * from Users where SUBSTRING(UserName,2,1)='大'第二种方法就是直接like模糊查询,看具体情况使用select * from Users where UserName like '%大%'

相似回答