[sql] Вопросы по БД

Discussion in 'PHP' started by FraiDex, 25 Feb 2008.

Thread Status:
Not open for further replies.
  1. krypt3r

    krypt3r Elder - Старейшина

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    PHP:
    function a() {
      global 
    $connection;
      
    mysql_query("INSERT INTO `user` (`email`,`pass`) values ('email','pass')",$connection);
    }
     
  2. DarkMist

    DarkMist Elder - Старейшина

    Joined:
    20 Feb 2007
    Messages:
    201
    Likes Received:
    24
    Reputations:
    0
    Решил изучить T-sql . С MySQL будет работать ???
     
    1 person likes this.
  3. krypt3r

    krypt3r Elder - Старейшина

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Transact-SQL от MS? Частично. Функции в SELECT и WHERE разные
     
    1 person likes this.
  4. mff

    mff Elder - Старейшина

    Joined:
    12 Mar 2008
    Messages:
    2,074
    Likes Received:
    701
    Reputations:
    227
    Помогите с запросом, нужно из базы выбрать 20 строчек с наибольшим рейтингом и отсортировать по стане:
    Побывал так:
    не получилось :(
     
  5. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    запрос правильный, только что у себя проверил, должен работать. В чем ошибка проявляется?
     
    1 person likes this.
  6. mff

    mff Elder - Старейшина

    Joined:
    12 Mar 2008
    Messages:
    2,074
    Likes Received:
    701
    Reputations:
    227
    Pashkela, запрос правильный, но он сортирует по большему рейтингу, 20 позиций, а потом полученное подсортировывает по стране.
    То есть если есть 2 позиции
    p1 с рейтингом 30 страна Англия
    p2 срейтингом 40 страна Белорусь

    этот запрос отсортирует так:
    p2
    p1

    так как рейт больше. Но у p2 страна на букву "Б" и следовательно если я сортирую полученное по стране, то на букву "А" должно идти первым.

    Нужно отобрать из базы 20 позиций с наибольшим рейтингом и отсортировать по стране сторого.

    Я так понял нужно 2 запроса делать?

    Спасибо!
     
  7. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    тогда вопрос неправильно стоит, просто поменяй местами ORDER BY `rating` DESC, `country` ASC тут, т.е. первым должно идти `country` ASC, если тебе алфавит страны важнее

    PS: Если опять не то, то да, два запроса тогда наверное, одновременно и рейтинг наибольший и сортировка так, как тебе надо - вряд ли
     
    #907 Pashkela, 22 Dec 2009
    Last edited: 22 Dec 2009
  8. Gray_Wolf

    Gray_Wolf Active Member

    Joined:
    7 Mar 2009
    Messages:
    377
    Likes Received:
    135
    Reputations:
    10
    Узнаёш 1-м запросом рейт 20-го и потом выводиш по алфавиту всех у кого рейт >= полученного...
     
    1 person likes this.
  9. mff

    mff Elder - Старейшина

    Joined:
    12 Mar 2008
    Messages:
    2,074
    Likes Received:
    701
    Reputations:
    227
    Пробывал вот так извратиться них не вышло :(

    Code:
    $result = mysql_query("SELECT * FROM (mysql_query("SELECT * FROM `base_` WHERE `show`='1' ORDER BY `rating` DESC LIMIT 0, 20")) WHERE `show`='1' ORDER BY `country` ASC");
    :confused:

    Помогите :(
     
  10. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    короче уже голову сломал, чо те надо:) Попробуй так:

    select * from (select * from `base_` where `show`='1' ORDER BY `rating` DESC LIMIT 0, 20) as a ORDER BY `country` ASC

    PS: Ибо второй раз писать where и limit смысла конечно нет
     
    #910 Pashkela, 22 Dec 2009
    Last edited: 22 Dec 2009
    1 person likes this.
  11. mff

    mff Elder - Старейшина

    Joined:
    12 Mar 2008
    Messages:
    2,074
    Likes Received:
    701
    Reputations:
    227
    Спс, почти оно :) Но вот СКРИН, как то Страну коряво сортирнуло :confused:
     
  12. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    покажи запрос на пыхе, плз
     
  13. mff

    mff Elder - Старейшина

    Joined:
    12 Mar 2008
    Messages:
    2,074
    Likes Received:
    701
    Reputations:
    227
    PHP:
    if($so==3){$result mysql_query("select * from (select * from `base_` where `show`='1' ORDER BY `rating` DESC LIMIT 0, 20) as a ORDER BY `country` ASC");}
    :)
     
  14. mff

    mff Elder - Старейшина

    Joined:
    12 Mar 2008
    Messages:
    2,074
    Likes Received:
    701
    Reputations:
    227
    HELP ME! PLEEEEEASE!

    UP! Помогите плиз, ничего не выходит.
    :confused:
     
  15. krypt3r

    krypt3r Elder - Старейшина

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    mff, приведите пример, что вы хотите получить
     
    1 person likes this.
  16. mff

    mff Elder - Старейшина

    Joined:
    12 Mar 2008
    Messages:
    2,074
    Likes Received:
    701
    Reputations:
    227
    krypt3r, есть табличка:
    Code:
    id 	channel  	country 	rating	views
    Нужно выбрать 20 позиций с наибольшим рейтингом (rating) и полученное отсортировать по алфавиту по стране (country) :confused:
     
  17. krypt3r

    krypt3r Elder - Старейшина

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Это не полный пример. Приведите несколько записей из этой таблицы и результат, который вы хотите получить.
     
  18. mff

    mff Elder - Старейшина

    Joined:
    12 Mar 2008
    Messages:
    2,074
    Likes Received:
    701
    Reputations:
    227
    krypt3r полез делать дамп и понял в чем дело! Спасибо! У меня страны в виде чисел хранились, а сами названия в другой табличке -)
     
  19. krypt3r

    krypt3r Elder - Старейшина

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
  20. Freakazoitt

    Freakazoitt Elder - Старейшина

    Joined:
    2 Jun 2008
    Messages:
    35
    Likes Received:
    1
    Reputations:
    0
    как удалить в таблице ранние записи (время в хранится в ячейке t), оставив 30 последних?
     
Thread Status:
Not open for further replies.