我想用 php 中的人制作一个“搜索引擎”。我有两列。第一个是first_name,第二个是姓我使用这个sql语法:
SELECT *
FROM users
WHERE first_name OR last_name LIKE '$search_term%'
我希望 sql 同时搜索名字和姓氏,而没有一个包含 first_name 和 last_name 的列。请帮忙 !!!!
它应该是
SELECT *
FROM users
WHERE first_name LIKE '$search_term%' AND
last_name LIKE '$search_term%'
但是上面的查询执行全表扫描,因为它不使用 index。为了获得更好的性能,请搜索FULL TEXT SEARCH
.
作为旁注,SQL Injection
如果变量的值(s)来自外部,则查询很容易受到攻击。请看下面的文章,了解如何预防。通过使用PreparedStatements
,您可以摆脱在值周围使用单引号。