UPDATE в mysql

Discussion in 'PHP' started by Micr0b, 21 Sep 2007.

  1. Micr0b

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

    Joined:
    14 Jan 2006
    Messages:
    223
    Likes Received:
    168
    Reputations:
    26
    Нехотелось создавать тему, вопрос маленький =\

    Мне нужно зделать выборку с упдейтом. Тоись занести в БД обновленые даные..

    Проблема такова когда делаю запрос:

    UPDATE `table` SET ...... WHERE ips='$ip';

    то тогда обновляюця в БД столбцы где есть одинаковые айпи..

    Мне нужно зделать одновление по ip и по последньому id
    Пробвал зделать так:
    UPDATE `table` SET ...... WHERE ips='$ip', max(id);
    но ошыбка.. хелп ми))
     
  2. Joker-jar

    Joker-jar Elder - Старейшина

    Joined:
    11 Mar 2007
    Messages:
    581
    Likes Received:
    205
    Reputations:
    37
    UPDATE `table` SET ...... WHERE ips='$ip' and id=(select+max(id)+from+table);

    Может как-нибудь так? Хотя наверное можно как то попроще
     
    1 person likes this.
  3. groundhog

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

    Joined:
    12 May 2007
    Messages:
    1,159
    Likes Received:
    425
    Reputations:
    180
    А если сначала сделать:

    а уже потом:

    З.Ы. Джок, если у него четёрка на хосте, сложный запрос не пройдёт.
     
    #3 groundhog, 21 Sep 2007
    Last edited: 21 Sep 2007
    1 person likes this.
  4. guest3297

    guest3297 Banned

    Joined:
    27 Jun 2006
    Messages:
    1,246
    Likes Received:
    639
    Reputations:
    817
    подзапросы рабтают с 4.1 версии.
     
    1 person likes this.
  5. Micr0b

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

    Joined:
    14 Jan 2006
    Messages:
    223
    Likes Received:
    168
    Reputations:
    26
    спасиб! совсем забыл о подзапросах.. спс
     
  6. xMash

    xMash New Member

    Joined:
    19 Sep 2007
    Messages:
    15
    Likes Received:
    1
    Reputations:
    0
    а так:
    UPDATE table SET ...... WHERE ips='$ip' ORDER BY id DESC LIMIT 1
     
  7. xMash

    xMash New Member

    Joined:
    19 Sep 2007
    Messages:
    15
    Likes Received:
    1
    Reputations:
    0
    …или, даже лучше, так:
    Code:
    UPDATE table SET ...... WHERE ips=last_insert_id()
    
     
  8. fucker"ok

    fucker"ok Elder - Старейшина

    Joined:
    21 Nov 2004
    Messages:
    580
    Likes Received:
    279
    Reputations:
    91
    UPDATE `table` SET ...... WHERE ips='$ip', id=max(id);
     
  9. groundhog

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

    Joined:
    12 May 2007
    Messages:
    1,159
    Likes Received:
    425
    Reputations:
    180
    fucker"ok, разве такая конструкция доспустима? Выражения условий должны объединяться логическими операторам (OR, AND EXISTS, etc.)
     
  10. xMash

    xMash New Member

    Joined:
    19 Sep 2007
    Messages:
    15
    Likes Received:
    1
    Reputations:
    0
    тем более что об этом говорится в первом посте
     
Loading...