SQL-запрос с использованием then (?) Или системы баллов - PullRequest
1 голос
/ 30 мая 2011

Я создаю поиск пользователей, и у меня есть таблица Users с именем id, первым и последним в нем.

Затем я запрашиваю имена, скажем: "John Smith".

Используя PHP, я разбью запрос на 2 части: q1 = Джон и q2 = Смит.

Я хочу разработать систему баллов, в которой запись с первым = Джон и последним = Смитом будет перенесена наверх.

Так что мой sql примерно такой:

 SELECT User.id, User.first, User.last
 FROM users as User
 WHERE (User.first = q1 OR User.first = q2) OR //if this is true +1 points
 WHERE (User.last = q1 OR User.last = q2) OR //if this is true +1 points

//then sum up the points and order by it (so the User.id with John Smith will have 2 points)

Есть предложения?

1 Ответ

3 голосов
/ 30 мая 2011

Если ваша СУБД имеет функцию IF, вы можете сделать:

SELECT User.id, User.first, User.last,
    IF (User.first = q1 OR User.first = q2, 1, 0) +
    IF (User.last = q1 OR User.last = q2, 1, 0) as points
FROM users as User
ORDER BY points DESC
...