我的网站有搜索机制。为此,我编写了一个大型条件查询。

$sql = "select * from users where
keyword like '%".$_POST['search']."%'
OR name like '%".$_POST['search']."%'";

现在,我想我在网站上有以下数据:
ID    Name    Keyword
1     Sanjay  sanjay, surani
2     Ankit   ankit, shah
3     Ravi    ravi, kotwani

现在,我需要的结果是,当用户写入"sanjay, shah" ($_POST['search'] = 'sanjay, shah')时,应该显示记录1和2。
我可以在一个mysql查询中实现这一点吗?

最佳答案

如果要重新构造关键字字段并将其拆分,使其只包含一个名称,该怎么办?
所以不是

ID    Name    Keyword
1     Sanjay  sanjay, surani
2     Ankit   ankit, shah
3     Ravi    ravi, kotwani

你会有
ID    Name    KeyID
1     Sanjay  1
2     Sanjay  2
3     Ankit   3
4     Ankit   4
5     Ravi    5
6     Ravi    6

KeyID Keyword
1     sanjay
2     surani
3     ankit
4     shah
5     ravi
6     kotwani

搜索会快得多。

关于php - mysql查询中的逗号分隔搜索,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10053555/

10-10 22:03