使用未知数量的参数查询数据库

时间:2013-12-23 17:07:09

标签: php mysql mysqli

这是我的情况。我正在开发一个小型服务台,用户可以在其中搜索他们的问题。例如。 I cannot connect to the internet

我的数据库中有一个关键字表,例如互联网,连接,网络浏览器等。

我想要做的是将该句子I cannot connect to the internet分成单词并有一个数组:

[0]=> I
[1]=> cannot
[2]=> connect
[3]=> to
[4]=> the
[5]=> internet

然后对数据库进行查询,非常简单:

SELECT * FROM solutions T1 
  join solution_tags_intermediate T2 on T1.ID_SOLUTION = T2.ID_SOLUTION  
  join solution_tags T3 on T2.SOLUTION_TAGS_ID = T3.SOLUTION_TAGS_ID 
  WHERE T3. SOLUTION_TAGS_NAME = ??

这是我的问题,如果在执行查询之前我不知道参数的确切数量,如何从数据库中返回与我的搜索匹配的记录列表?

有没有办法做到这一点或更精细的一个?

顺便说一下,这是在php和mysql上开发的。

2 个答案:

答案 0 :(得分:0)

您应该能够使用explode()和fputcsv()将搜索短语拆分为数组,然后将其转换为逗号分隔的字符串。然后,您可以在查询中使用IN子句进行搜索。

T3.SOLUTION_TAGS_NAME IN(“。$ csv_variable。”)“;

答案 1 :(得分:0)

您应该认真考虑关注@MarcB评论建议。这就是全文搜索的目的。

http://dev.mysql.com/doc/refman/5.6/en/fulltext-natural-language.html