Как я могу извлечь конкретное значение из моей таблицы, используя WHERE и AND на основе другого конкретного значения? - PullRequest
0 голосов
/ 03 октября 2018

У меня проблема с извлечением определенных данных с использованием команд WHERE и AND в моем операторе SELECT.Эта проблема заключается в следующем:

У меня есть таблица с именем "solo_leaderboard".Именно в этой таблице я храню высокие оценки для всех игр в игровом клубе.Я хотел бы сохранить все рекорды в этой таблице, так как создание отдельной таблицы для каждой игры кажется смешным.Я использую эту таблицу для заполнения HTML-страниц, отображающих 5 лучших результатов для каждой игры.Человек может иметь только один счет в Топ-5 за каждую игру за раз.Пока что эта часть работает отлично.

Моя главная проблема в том, что мой код извлекает только высокий балл человека из всей таблицы и отображает его, только если он применим к указанной игре.Например, человек имеет высший балл 3111 в Сумасшедшем такси Sega Dreamcast, поэтому его высокий балл 18 в Автостраде Атари не отображается в списке Автострады, даже если он будет на втором месте в списке Автострады.

Я не хочу, чтобы человек находился в одной таблице лидеров несколько раз, но я хочу, чтобы он появлялся в других списках лидеров.

Вот моя схема таблицы и соответствующий код php:

  • id - int (10)
  • игровая система - varchar (30)
  • game - varchar (30)
  • name - varchar (40)
  • оценка - int (10)
  • date - date
  • levellevel - varchar (5)
  • whois - enum
 $result = mysqli_query($conn,"SELECT * FROM solo_leaderboard x WHERE game 
    LIKE '%Freeway%' AND score >= ALL
        (SELECT score FROM solo_leaderboard y
            WHERE y.name=x.name
              AND score>0) ORDER BY score DESC LIMIT 5");

1 Ответ

0 голосов
/ 04 октября 2018

С добавлением «AND game LIKE '% Freeway%' в конце моего вложенного оператора SELECT я эффективно решил проблему.

$result = mysqli_query($conn,"SELECT * FROM solo_leaderboard x WHERE game LIKE '%Freeway%' AND score >= ALL    (SELECT score FROM solo_leaderboard y
        WHERE y.name=x.name
          AND score>0 AND game LIKE '%Freeway%') ORDER BY score DESC LIMIT 5");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...