За последние 24 часа нас посетили 30839 программистов и 1444 робота. Сейчас ищут 907 программистов ...

Выборка из БД

Тема в разделе "PHP для новичков", создана пользователем Greg1978, 13 мар 2010.

  1. Greg1978

    Greg1978 Активный пользователь

    С нами с:
    18 окт 2008
    Сообщения:
    484
    Симпатии:
    0
    Адрес:
    class SenjorUser{}
    Скажите пожалуйста как выбрать из БД записи если у одного и того же поля есть несколько значений:
    "SELECT * FROM `users` WHERE `group_id`=1 OR `group_id`=7 и т.д. AND `last_id` > $id"
    Я чего то запарился ...
    Спасибо!!!
     
  2. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    группировка

    if((true || false) && true)
     
  3. lexa

    lexa Активный пользователь

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Greg1978, Mr.M.I.T. очень хороший совет дал - группируй. Я, например, даже математические выражения сую в скобки и не важно насколько они очевидны, со скобками они очевиднее: 1 + 1 * 2 - один умнодить на два плюс один. Но со скобками-то лучше 1 + (1 * 2).

    Точно так же с логикой.

    [sql]SELECT * FROM `users` WHERE `group_id`=1 OR `group_id`=7 и т.д. AND `last_id` > $id[/sql]

    У тебя правило читается так (group_id = 1) or (group_id=7 и т.д. and last_id > $id). Очевидно, это не то, чего ты ожидаешь. А вот так то:
    [sql]SELECT * FROM `users` WHERE (`group_id`=1 OR `group_id`=7 и т.д.) AND `last_id` > $id[/sql]

    Скобки не только расставляют приоритеты, но и помогают читать результаты рук твоих. :)
     
  4. Greg1978

    Greg1978 Активный пользователь

    С нами с:
    18 окт 2008
    Сообщения:
    484
    Симпатии:
    0
    Адрес:
    class SenjorUser{}
    Спасибо Mr.M.I.T.,lexa!!!
    Запарка была во не внимательности.
    Скажите пожалуйста где можно более подробно почитать про группирование с примерами, информации валом да только как то скудно или приведите простенький пример для чего применяется.
    Потому как я понял не совсем мне подходило, но хочется очень узнать.
     
  5. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    (2+2)*2 != 2+2*2
     
  6. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    ну, ты это виндовому калькулятору в простом режиме скажи ;)
     
  7. vuzy

    vuzy Активный пользователь

    С нами с:
    11 мар 2010
    Сообщения:
    199
    Симпатии:
    0
    Адрес:
    киев
    ну так в виндовый калькулятор символы поочереди вбиваются а порядок очереди определяет логика каждого отдельно взятого человека...
    а вот математическая логика PHP утверждает что 2+2*2 = 6 а (2+2)*2 = 8
     
  8. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    а это ты скажи инженерному режиму :D
     
  9. vuzy

    vuzy Активный пользователь

    С нами с:
    11 мар 2010
    Сообщения:
    199
    Симпатии:
    0
    Адрес:
    киев
    смешно ... респект катаюсь...
     
  10. jfr

    jfr Активный пользователь

    С нами с:
    14 мар 2010
    Сообщения:
    3
    Симпатии:
    0
    по приоритету конъюнкция стоит высше чем дизъюнкция