我想在php中与人们建立一个“搜索引擎”。我有两列。第一个是first_name,secon是姓,我使用这个sql语法:
SELECT *
FROM users
WHERE first_name OR last_name LIKE '$search_term%'
我使用sql来搜索名字和姓氏同时搜索第一个名称和last_name的列。请帮助!!!!
答案 0 :(得分:0)
应该是
SELECT *
FROM users
WHERE first_name LIKE '$search_term%' AND
last_name LIKE '$search_term%'
但上面的查询执行全表扫描,因为它不使用索引。要获得更好的效果,请搜索FULL TEXT SEARCH
。
作为旁注,如果变量的值( s )来自外部,则查询易受SQL Injection
攻击。请查看下面的文章,了解如何防止它。通过使用PreparedStatements
,您可以摆脱在值周围使用单引号。