SQL-запрос все еще не дает ожидаемых результатов

0

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

Считать запрос:

SELECT COUNT(DISTINCT tg_id) 
  FROM tg_keywords 
 WHERE tg_keyword LIKE 'keyword_1' OR tg_keyword LIKE 'keyword_2' 
 ORDER BY tg_keyword LIKE 'keyword_1' AND tg_keyword LIKE 'keyword_2 DESC
Returns 1 count as expected.

Поисковый запрос:

SELECT DISTINCT tg_keywords.tg_id 
  FROM tg_keywords LEFT JOIN tg_info.tg_id=tg_keywords.tg_id 
 WHERE tg_keyword LIKE 'keyword_1' OR tg_keyword LIKE 'keyword_2' 
 ORDER BY tg_keyword LIKE 'keyword_1' AND tg_keyword LIKE 'keyword_2' DESC, tg_info.date_added LIMIT 16 OFFSET 1
Returns 0 results (1 is expected)

Любые советы будут очень признательны

Спасибо заранее, Archie

  • 1
    Что вы подразумеваете под "не работает правильно"?
  • 0
    Первый запрос выдает 1 результат из базы данных, как я хотел, но второй запрос возвращает 0 результатов. Я хотел, чтобы первый запрос подсчитывал количество результатов без ограничения, но второй запрос возвращал уникальное поле tg_id с ограничением.
Теги:
select

3 ответа

2
Лучший ответ

Удалите OFFSET 1 в конце запроса, а затем попробуйте.

OFFSET 1 сообщает, что он дает вам записи из второй строки. Либо сделайте его OFFSET 0, либо полностью удалите его.

  • 0
    Работал отлично, думал, что OFFSET всегда начинался с 1. Спасибо, чувак.
  • 0
    Пожалуйста.
0

Также вы хотите дать пользователю возможность использовать подстановочные знаки SQL? Если нет, я, вероятно, плюшу и поставлю a =.

0
SELECT DISTINCT tg_keywords.tg_id 
FROM tg_keywords 
LEFT JOIN tg_info.tg_id=tg_keywords.tg_id 
WHERE tg_keyword LIKE 'keyword_1' OR tg_keyword LIKE 'keyword_2' 
ORDER BY tg_keyword LIKE 'keyword_1' AND tg_keyword LIKE 'keyword_2' DESC, tg_info.date_added 
LIMIT 16 OFFSET 1

Что с этим ORDER BY? Возможно, вы имели в виду:

WHERE tg_keyword LIKE 'keyword_1' OR tg_keyword LIKE 'keyword_2' 
ORDER BY tg_info.date_added DESC
  • 0
    нет, я хочу, чтобы результаты, соответствующие всем ключевым словам, были возвращены первыми. Вот почему критерии такие же, как и выше, но оператор И находится между ключевыми словами вместо ИЛИ, как указано выше.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню