-1

我正在为我的网站编写用户搜索功能,目前它返回结果,但仅限于完全匹配。

当前的 SQL 查询是:

SELECT * FROM users WHERE firstname='$term' OR lastname='$term' OR url='$term' OR firstname='".$termExploded[0]."' ORDER BY hits DESC

我将如何更改此查询,以便它还检查 $term (或相关的 $termExploded[0] )的开头是否与术语匹配?

这是我自己想出的,但这不起作用:

SELECT * FROM users WHERE firstname='$term' LIKE '$term%' OR lastname='$term' LIKE '$term%' OR url='$term' LIKE '$term%' OR firstname='".$termExploded[0]."' LIKE '$term%' ORDER BY hits DESC

首先十分感谢 :)

4

1 回答 1

1
SELECT *
FROM users
WHERE firstname LIKE '$term%' OR
      lastname LIKE '$term%' OR
      url LIKE '$term%' OR
      firstname LIKE '$termExploded[0]%'
ORDER BY hits DESC

显然,您需要注意正确转义所有变量。

于 2012-06-06T06:49:50.710 回答