怎么查询某个字段中是否包含某个关健词?

jsjjma 2017-09-26 09:42:04
表member

text id
19,20 79
182,82,18,2 80

当查询ID为79的那条数据时,查询text 字段是否包含19,能够正确输出:
$Keywords="19";//关健词
$id="79";
$query="SELECT instr(','text ',', ','$Keywords',')from member where id='$id'";
$result=mysql_fetch_array(mysql_query($query));

if($result[0]>0){
echo "".$result[0]."";
}else{
echo "不存在";
}

当查询ID为80的那条数据时,查询text 字段是否包含2就出错了,因为182中也有2,82中也有2,无法作唯一判断啊:
$Keywords="2";//关健词
$id="80";
$query="SELECT instr(','text ',', ','$Keywords',')from member where id='$id'";
$result=mysql_fetch_array(mysql_query($query));
if($result[0]>0){
echo "".$result[0]."";
}else{
echo "不存在";
}

有没有更好的办法?谢谢!
...全文
475 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
jsjjma 2017-09-26
  • 打赏
  • 举报
回复
引用 1 楼 hongmei85 的回复:

select * from `member` where find_in_set(2,`text`)>0;
怎么判断存在不存在啊? if(){ echo "".$result[0].""; }else{ echo "不存在"; }
hongmei85 2017-09-26
  • 打赏
  • 举报
回复

USE test;

DROP TABLE
IF EXISTS `member`;

create table `member`(
`id` smallint not null AUTO_INCREMENT,
`text` varchar(20) not null,
PRIMARY KEY  (`id`)
) ENGINE = MyISAM DEFAULT CHARSET = utf8;

insert `member` values(79,'19,20'),(80,'182,82,18,2');

select * from `member` where find_in_set(19,`text`)>0;
select * from `member` where find_in_set(2,`text`)>0;

DROP TABLE `member`;
一起混吧 2017-09-26
  • 打赏
  • 举报
回复
$Keywords="2";//关健词
$id="80";
$query="SELECT find_in_set($Keywords,`text`) from member where id='$id' and find_in_set($Keywords,`text`)";
$result=mysql_fetch_array(mysql_query($query));
if($result){
echo "".$result[0]."";
}else{
echo "不存在";
}

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧