具有名称的搜索引擎的Mysql语法

时间:2013-02-24 15:06:56

标签: php mysql sql

我想在php中与人们建立一个“搜索引擎”。我有两列。第一个是first_name,secon是姓,我使用这个sql语法:

SELECT * 
FROM users 
WHERE first_name OR last_name LIKE '$search_term%'

我使用sql来搜索名字和姓氏同时搜索第一个名称和last_name的列。请帮助!!!!

1 个答案:

答案 0 :(得分:0)

应该是

SELECT * 
FROM   users 
WHERE  first_name LIKE '$search_term%' AND 
       last_name LIKE '$search_term%'

但上面的查询执行全表扫描,因为它不使用索引。要获得更好的效果,请搜索FULL TEXT SEARCH

作为旁注,如果变量的值( s )来自外部,则查询易受SQL Injection攻击。请查看下面的文章,了解如何防止它。通过使用PreparedStatements,您可以摆脱在值周围使用单引号。