表名:tbl_person
列:id,name,bio
样本数据:(id,name,bio)
1,迈克,剑桥大学物理学士学位
2,皮特,剑桥大学地质学士
3,山姆,牛津大学地质学学士
问题: 我想创建一个(My'SQL')搜索,它可以获取多个值并在一列中搜索并匹配它们
例:
专门搜索:剑桥地质学
我希望它返回记录2,Pete
而不是所有的记录(因为它们包含匹配的关键词剑桥,地质)
到目前为止我的搜索是
SELECT * FROM tbl_person WHERE tbl_person.bio IN ('cambridge','geology')
- 现在这不会返回匹配 -
请任何想法
答案 0 :(得分:1)
SELECT * FROM tbl_person WHERE tbl_person.bio
LIKE '%cambridge%' AND tbl_person.bio LIKE '%geology%'
答案 1 :(得分:1)
尝试全文搜索,这将为您提供更多功能和更好的性能
http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html
http://dev.mysql.com/doc/refman/5.0/en/fulltext-boolean.html
答案 2 :(得分:0)
SELECT
*
FROM
tbl_person
WHERE
bio LIKE '%cambridge%'
AND
bio LIKE '%geology%'
您将根据用户的搜索生成程序中LIKE
子句的所有WHERE
子句,然后AND
将它们组合在一起以创建查询。