0

我想用 php 中的人制作一个“搜索引擎”。我有两列。第一个是first_name,第二个是姓我使用这个sql语法:

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

我希望 sql 同时搜索名字和姓氏,而没有一个包含 first_name 和 last_name 的列。请帮忙 !!!!

4

1 回答 1

0

它应该是

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

但是上面的查询执行全表扫描,因为它不使用 index。为了获得更好的性能,请搜索FULL TEXT SEARCH.

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

于 2013-02-24T15:07:35.933 回答