首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何从一个表中选择一个字段,该表是另一个表的一个字段中包含的字符串的一部分?

如何从一个表中选择一个字段,该表是另一个表的一个字段中包含的字符串的一部分?
EN

Stack Overflow用户
提问于 2011-07-05 02:46:42
回答 2查看 914关注 0票数 2

使用PHP和MYsql。我有两张桌子

  • 表'tag':有字段'id‘和'tag’('tag‘是varchar)
  • 表'entry':有字段‘tag’和其他字段(‘tag’是varchar,存储许多单词作为标记,每个单词用逗号分隔。然后,我使用函数‘array’从字符串中提取标记,以存储在数组‘$标记’中。)表'entry‘中的所有标记都存储在表’tag‘中。)

我想要的是选择所有的‘标签’从表‘标签’,这是标签在同一字符串的‘标签’的表‘条目’,有一个给定的标签(变量$tag)。但是不知道,我只是尝试从表'entry‘中选择标记,其中的字符串在’$tag‘中包含指定的标记(变量.My),当前的代码是

代码语言:javascript
复制
$count=0;
$sql="SELECT tags FROM entry WHERE tag LIKE '%$tag%'";
$result = mysql_query($sql);
while($data=mysql_fetch_array($result)){
  if(mysql_num_rows($result)!=0){
    $tags1=explode(',',$data['tags']);
    for($loop=0; $loop<=count($tags1)-1; $loop++){
      if(!in_array($tags1[$loop], $tags2)){
        $count+=1; 
        $tags2[$count]=$tags1[$loop];
      }
    }
  }
}
EN

Stack Overflow用户

发布于 2011-07-05 03:08:00

将其作为一条语句执行的超级低效SQL注入攻击方法如下:

代码语言:javascript
复制
$sql="SELECT tags FROM entry WHERE 1=1 ";

然后在运行查询之前将每个标记添加到查询中:

代码语言:javascript
复制
$sql.="AND tag LIKE '" . $tags1[$loop] . "' ";

如果您想匹配任何标记,而不是所有标记,请将AND替换为OR

不过,我确实建议对标记进行规范化,并考虑不以这种方式构建SQL查询。

票数 2
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6577583

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档