MYSQL语句,如果想搜索一个字段是不是包含某字符串应该怎么写

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MYSQL语句,如果想搜索一个字段是不是包含某字符串应该怎么写相关的知识,希望对你有一定的参考价值。

比如,字段A中有字符串“AAA,BBB,CCC”,这实际是我多个字符串的合集,用逗号分隔的,现在我要查其中是否包含了BBB,应该怎么做。

附加一个问题,如果查到有BBB,我想从中删除BBB,变成“AAA,CCC”,又该怎么做?

附加问题回答了可以附加30分。
like '%BBB%' 我想过,但是有问题,比如我字段值是1,2,11,12,我想从里面查询是否存在单独的1,如果用like就可能把11和12也弄进来。同样问题2用replace也有可能造成同样问题

select * from table where A like '%BBB%' and 条件; 执行以下sql看有无返回值

update table set A=replace('BBB' , '' , A) where A like '%BBB%' and 条件;

哦。。
这样的话就么法了,只能取出来,分割成数组在做判断喽
参考技术A --查询BBB

select * from tbName where A like '%BBB%';

--删除BBB
update tbName
set A=replace(A,'BBB,','')
where A like '%BBB%';
参考技术B 条件换成where ','+A like '%,1,%'就应该没问题

where一个字段中不存在某个字符,怎么写mysql判断语句

mysql中,要加个判断语句,
表 A 字段B

如何找出字段B没有包含[kid]或者[/kid]的数据

可以使用 not like

LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式
not like 即表示不包含某条件
例子:
Persons 表:

Id LastName FirstName Address City

1 Adams John Oxford Street London
2 Bush George Fifth Avenue New York
3 Carter Thomas Changan Street Beijing
选取居住在不包含 "lon" 的城市里的人
SELECT * FROM Persons WHERE City NOT LIKE '%lon%'

结果集:

Id LastName FirstName Address City

2 Bush George Fifth Avenue New York
3 Carter Thomas Changan Street Beijing
参考技术A MYSQL不是SQLServer,MYSQL要使用LOCATE()或 INSTR()函数。
SELECT * FROM A WHERE LOCATE('[kid]',B)=0 and LOCATE('[/kid]',B)=0
--或者
SELECT * FROM A WHERE INSTR(B,'[kid]')=0 and INSTR(B,'[/kid]')=0

参考资料:http://www.phpv.net/html/1443.html

参考技术B select * from A where B not like '%[[]KID[]]%' and B not like '%[[]/KID[]]%'追问

[] 这是什么字符,为什么要出现这个字符

追答

以为你的查询内容包括了 中括号字符 ,所以用 [] 把所有的中括号字符括起来了,你测测试试,我只是写了,但是没测

追问

查询的字符是 [/kid]和[/kide] 的确有中括号

追答

结果对不对?

本回答被提问者采纳
参考技术C !=
not in

not like

<>
参考技术D 同上,可以用like
或者用函数,substring,charindex。。等等

以上是关于MYSQL语句,如果想搜索一个字段是不是包含某字符串应该怎么写的主要内容,如果未能解决你的问题,请参考以下文章

MYSQL如何用语句给某字段的空字符串附一个值?

where一个字段中不存在某个字符,怎么写mysql判断语句

mysql查询某一个字段是否包含中文字符

sql语句,怎样判断一个字段中是不是存在某一个值

MySQL 查询某个字段包含一个字符串的SQL语句

如何用sql语句,判断数据库中某字段的内容,包含于某字符串