Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di P75
    Registrato dal
    Jul 2001
    Messaggi
    41

    Valore di default per SELECT?

    Salve,
    ho una query di questo tipo:

    Codice PHP:
    SELECT `entry`, `name`, `authorFROM `articlesWHERE `entryIN ('123','178','908'
    ORDER BY FIND_IN_SET(entry'123,178,908'); 
    I valori di entry: `entry` IN ('123','178','908')
    sono variabili e può capitare che per uno di essi non sia presente un record.

    Io inceve, nel caso in cui "178" non esista, vorrei avere come result:


    codice:
    +----------+--------------------------------+
    | entry    | name                 | author
    +----------+--------------------------------+
    | 123      | Fagiolini            | Pippo
    | 178      | Unknown              | Unknown
    | 908      | Patatine             | Minnie
    C'è un modo per dire a MySql di fornire un valore di default quando il SELECT non trova un record?

  2. #2
    Ciao,

    come da regolamento, va inserito il nome della piattaforma del database nel titolo.

    Per questa volta correggo io, ma più attenzione gentilmente.

  3. #3
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Ti serve una tabella d'appoggio (nel mio esempio di nome numeri con un campo id) che contenga tutti i numeri progressivi da 1 fino al valore massimo ricercabile.

    La puoi creare tramite uno script in qualunque linguaggio o tramite qualche trucco sql.

    Degli spunti molto interessanti li trovi a questo indirizzo

    http://datacharmer.blogspot.com/2007...pop-quiz.html.

    Una volta creata questa tabella puoi risolvere così

    codice:
    SELECT id,
    IF(NAME IS NULL,'unknown',NAME) AS NAME,
    IF(author IS NULL,'unknown',author) AS author
    FROM numeri AS n
    LEFT JOIN (
    SELECT * FROM articles) AS a
    ON a.entry = n.id
    WHERE id IN (123,178,908)
    ORDER BY FIELD(id,123,178,908)

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.