我们如何在SQL查询中搜索多个部分匹配,每个匹配用'OR'分隔

时间:2012-06-06 06:48:16

标签: php mysql sql

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

当前的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

非常感谢提前:)

1 个答案:

答案 0 :(得分: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

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