Получить как минимум х количество строк в MySQL - PullRequest
3 голосов
/ 07 августа 2011

Привет! Я пытаюсь заставить запрос mysql работать должным образом, но, если честно, я не уверен, с чего начать, я думаю, что функция count будет работать, но не уверен.

Что я пытаюсь сделать, это сделатьвыбор, но если насчитывается менее 5 строк, чем объединение с другим предложением запроса / где, пока не будет достигнуто значение 5.

Таким образом, в основном идут как минимум 5 строк и продолжают объединять строки, пока не будет достигнуто 5 или более ...

    $myquery_mysql = mysql_query("(SELECT title, city, ad_image, rent, uniqid FROM rentals WHERE front_page_ad = '1' AND paid = '1' AND city = '".mysql_real_escape_string($GLOBALS['user_city'])."')
    UNION ALL
    (SELECT title, city, ad_image, rent, uniqid FROM rentals WHERE front_page_ad = '1' AND paid = '1' AND province = '".mysql_real_escape_string($GLOBALS['user_province'])."' )
    UNION ALL
    (SELECT title, city, ad_image, rent, uniqid FROM rentals WHERE front_page_ad = '1' AND paid = '1' )" or die(mysql_error());

Буду ли я делать что-то вроде ...

            $myquery_mysql = mysql_query("(SELECT title, city, ad_image, rent, uniqid count(if title > 5) THEN FROM rentals WHERE front_page_ad = '1' AND paid = '1' )"
    UNION ALL
    (SELECT title, city, ad_image, rent, uniqid FROM rentals WHERE front_page_ad = '1' AND paid = '1' AND province = '".mysql_real_escape_string($GLOBALS['user_province'])."' ) 
    ELSE FROM rentals WHERE front_page_ad = '1' AND paid = '1' )" END ;

or die(mysql_error());

Я знаю, что это неправильно, но я просто пытаюсь это выяснить.

Ответы [ 2 ]

2 голосов
/ 07 августа 2011

Вы можете добавить LIMIT 5 в конце, чтобы он выполнял весь запрос со всеми объединениями, а затем выбирал 5 лучших результатов, если вы не предоставляете ему ORDER BY, он должен перечислить их впорядок вы делаете ваши союзы.

Так что, если у первого запроса будет 5 результатов, он просто возьмет их, но если нет, то он получит результаты следующих двух объединений.Пока ваши союзы не занимают много времени, это кажется хорошим ходом.

0 голосов
/ 07 августа 2011

Я бы сделал:

  • Оставить соединение при использовании всех сравнений
  • порядок по значениям сравнения desc, поэтому совпадающие значения имеют порядок выше несоответствующего (который будет null)
  • используйте лимит 5
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...