Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317

    [MySQL] IFNULL / IF non funzionanti

    INSERT INTO categories
    (cat_name, cat_desc, cat_active, cat_online_list, cat_order)
    VALUES
    ('%s', '%s', '%d', '%d', (SELECT IF ( IFNULL(c.cat_order, 1) <> 1, c.cat_order + 1, 1 ) FROM categories c ORDER BY c.cat_order LIMIT 1))",

    In parole povere ho il campo cat_order con le quali ordino la posizione delle categorie. Se è la prima categoria che creo ovviamente il select annidato non mi funziona perchè non ha nessun "order da sommare", quindi se ifnull resistuisce 1, assegno alla categoria l'order 1, altrimenti order + 1...

    Ma non va :/

    OK ho risolto facendo IF(COUNT(...))

    L'errore è:
    Error: Column 'cat_order' cannot be null

    COmunque potreste dirmi come modificare la query e il perchè non andava con lìimpostazione iniziale?
    Ultima modifica di zacca94; 08-05-2014 a 10:43

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317
    Ora l'errore è che restituisce sempre 1 o 2

    SELECT IF(COUNT(c.cat_order), (c.cat_order + 1), 1) FROM categories c ORDER BY c.cat_order DESC LIMIT 1

    se modifico con

    SELECT IF(c.cat_order, (c.cat_order + 1), 1) FROM categories c ORDER BY c.cat_order DESC LIMIT 1

    funziona correttamente, ma in questo caso non mi funziona quando non esistono categorie e non posso selezionare c.cat_order

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.