Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    69

    [mysql] ricerca in un campo

    ciao a tutti,
    ho un campo del database di tipo varchar con all'interno stringhe di questo tipo:
    1;3;5;8;13;15;18;

    con una query devo trovare il record che contiene all'interno una sola parte di quella stringa ad esempio:
    solo 18;
    solo 15;
    solo 8;
    o solo 5;

    il mio problema è che se cerco nella stringa 8; mi compare anche il record dove è presente [B]18;[B]

    come posso risolvere questo problema?

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    codice:
    select * from tabella where campo regexp ';8;|^8;|;8$|^8$'
    oppure

    codice:
    select * from tabella where find_in_set(8,replace(campo,';',','))
    Il tuo problema comunque è sintomo di una cattiva progettazione della tabella, con tutto ciò che ne consegue. Sarebbe meglio che la normalizzassi.

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    69
    ti ringrazio per avermi risposto, il problema grazie a te è risolto e stavo appunto studiando le due query che mi hai proposto.

    mi hai parlato di cattiva progettazione della tabella, potresti darmi qualche consiglio?
    attualmente quel campo è usato per salvare una o più categoria di un annuncio.

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Originariamente inviato da ArkantoZ
    mi hai parlato di cattiva progettazione della tabella, potresti darmi qualche consiglio?
    attualmente quel campo è usato per salvare una o più categoria di un annuncio.
    Dovresti creare una tabella in cui ad ogni annuncio associ le varie categorie

    codice:
    id id_annuncio id_categoria
    1    1                  1
    2    1                  3
    3    1                  5
    4    1                  8
    5    1                 13
    6    1                 15
    7    1                 18
    ....
    e così via.

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    69
    immaginavo
    grazie ancora per l'aiuto e la spiegazione.

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.