Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    268

    [mysql] Un ORDER particolare

    ho una tabella PROVA che contiene un campo con nome DESCRIZIONE
    devo cercare le righe il cui campo DESCRZIONE contiene PAROLA1 e/o PAROLA2
    quindi faccio:

    SELECT * FROM PROVA WHERE DESCRIZONE LIKE '%PAROLA1%' OR DESCRIZIONE LIKE '%PAROLA2%'

    mi piacerebbe ordinare i risultati in modo che compaiano prima le righe in cui DESCRIZIONE contiene entrambe le parole e poi le righe in cui DESCRIZIONE contiene almeno una delle due parole, naturalmente senza fare due query una di seguito all'altra! Sarà possibile?

  2. #2
    codice:
    SELECT * FROM PROVA WHERE DESCRIZONE LIKE '%PAROLA1%' AND DESCRIZIONE LIKE '%PAROLA2%'
    UNION
    SELECT * FROM PROVA WHERE DESCRIZONE LIKE '%PAROLA1%' AND DESCRIZIONE NOT LIKE '%PAROLA2%'
    UNION
    SELECT * FROM PROVA WHERE DESCRIZONE NOT LIKE '%PAROLA1%' AND DESCRIZIONE LIKE '%PAROLA2%'
    Potrebbe andare

    HTH
    Zappa
    [PC:Presario 2515EU][Cpu:P4@2.3GHz][Ram: 512M][HDU:80G@5400 RPM]
    [Wireless:LinkSys][OS: Ubuntu 9.04 - Jaunty Jackalope]

  3. #3
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    codice:
    select *,
    case
    when descrizione like '%parola1%' and descrizione like '%parola2%' then 1
    when descrizione like '%parola1%' or descrizione like '%parola2%' then 0
    end as ordinamento
    from tabella
    where descrizione like '%parola1%' or descrizione like '%parola2%'
    order by ordinamento desc

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    268
    Vanno bene entrambe.
    Sulla prima ho il risultato solo se nel NOT LIKE considero un unico "%" e non "%PAROLA%".

    Grazie 1000!

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.