这是我的情况。我正在开发一个小型服务台,用户可以在其中搜索他们的问题。例如。 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上开发的。
答案 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