Php 如何在mysql中从逗号分隔的列值进行搜索

Php 如何在mysql中从逗号分隔的列值进行搜索,php,mysql,Php,Mysql,我有一个搜索字符串 $searchStr='anti' 还有我的桌子 id名称关键字 1 Avast防病毒、病毒防护、警报 2诺顿诺顿,防病毒 3凯斯珀病毒,病毒,凯斯珀 4 php,mysql,代码 我想根据关键字获取数据 就像我搜索“反” 它将获取id为1,2,3的结果,请尝试以下操作 select * from table WHERE Keywords like '%anti%'; 如果您使用mysqli: $stmt = $mysqli->prepare('SELECT *

我有一个搜索字符串 $searchStr='anti' 还有我的桌子

  • id名称关键字
  • 1 Avast防病毒、病毒防护、警报
  • 2诺顿诺顿,防病毒
  • 3凯斯珀病毒,病毒,凯斯珀
  • 4 php,mysql,代码
我想根据关键字获取数据 就像我搜索“反” 它将获取id为1,2,3的结果,请尝试以下操作

select * from table WHERE Keywords like '%anti%';

如果您使用mysqli:

$stmt = $mysqli->prepare('SELECT * FROM mytable WHERE find_in_set(?, myField) <> 0');
$stmt->bind_param('s', $searchStr);
$stmt->execute();
$stmt=$mysqli->prepare('SELECT*FROM mytable WHERE find_in_set(?,myField)0');
$stmt->bind_参数('s',$searchStr);
$stmt->execute();

使用该函数。

where
Keywords
如“%anti%”使用真正的搜索引擎,否则性能会很差。第一条注释是您的答案,现在您只需要在它前面构建SQL。尝试一下,如果代码不起作用,请返回代码。例如,不起作用,因为列关键字有逗号分隔的值我在集合中使用FIND_,但它也不起作用。例如,不起作用,因为列关键字有逗号分隔的值,我在集合中使用FIND_,但它也不起作用,可能与我的新代码(我编辑了我的答案)有关,但你说在集合中查找不起作用,奇怪:/