Visualizzazione dei risultati da 1 a 5 su 5

Discussione: SQL: Domandone su LIKE

  1. #1

    SQL: Domandone su LIKE

    Ciao a tutti!
    Allora, ecco il mio probbbbbblema: con l'SQL io posso vedere se una mia variabile $a è contenuta in qualche campo di una tabella SQL:

    Select * from TABELLA WHERE campo LIKE "%$a%"

    Ora, io avrei invece bisogno di fare il contrario: avrei bisogno di sapere se qualche campo della mia tabella è contenuto nella $a: se ho una tabella che assume i valori di campo "vecchia", "fattoria", "nella" e "asino", dando a $a il valore di "nella vecchia fattoria iaiao" dovrei trovare (dalla tabella) "vecchia" "fattoria" "nella". Mi sono spiegato? Spero di sì... qualcuno sa come aiutarmi?

    Grazie mille!

  2. #2
    non ti sei spiegato.

    Tabella e' l'insieme dei campi, nei campi sono contenuti dei valori. Il where cerca un valore nel campo indicato e non nella tabella in quanto tale. Quindi data una tabella composta da campi cerco un valore in un campo definito in where. Posso cercare un valore nel campo ma posso anche cercare i record della tabella nel cui campo determinato non sono presenti i valori definiti.

    In base a queste considerazioni prova a rifare la domanda.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Table Parole

    ID Parola

    1 Nella
    2 Vecchia
    3 Fattoria
    4 Iaiao

    SELECT ID FROM Parole WHERE (?????)

    Al posto di ???? ho bisogno di una condizione che mi selezioni tutti gli id di ogni riga della tabella Parole in cui il campo "Parola" è contenuto nella stringa "Nella vecchia fattoria". I risultati che dovrebbero venire dovrebbero essere: 1, 2, 3.

  4. #4
    Originariamente inviato da Araganaus
    Table Parole

    ID Parola

    1 Nella
    2 Vecchia
    3 Fattoria
    4 Iaiao

    SELECT ID FROM Parole WHERE (?????)

    Al posto di ???? ho bisogno di una condizione che mi selezioni tutti gli id di ogni riga della tabella Parole in cui il campo "Parola" è contenuto nella stringa "Nella vecchia fattoria". I risultati che dovrebbero venire dovrebbero essere: 1, 2, 3.
    il problema e' proprio nella definizione di contenuto e di contenitore.

    il campo "parola" e' un contenitore. "nella vecchia fattoria iaiaio" sono i contenuti.

    comunque si diciamo che vorresti tutti gli id dei record che nel campo Parola contengono la stringa "nella", oppure "vecchia" oppure "fattoria" allora una query potrebbe essere:

    codice:
    SELECT id FROM tabella 
    WHERE 
    prodotto like '%vecchia%'
    OR 
    prodotto like '%fattoria%'
    OR 
    prodotto like '%nella%'

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Io farei così.

    Prima di tutto, con del semplice codice php

    Codice PHP:
    $str_nella_vecchia_fattoria "'" str_replace(" ""','"$str_nella_vecchia_fattoria) . "'"
    dovresti riuscire a modificare la stringa
    "nella vecchia fattoria iaiaio"
    in
    "'nella','vecchia','fattoria','iaiaio'"

    "A che pro?", penserai. Ora ti faccio vedere.

    A questo punto una query del tipo
    codice:
    SELECT id FROM parole WHERE parola IN ('nella','vecchia','fattoria','iaiaio')
    otterrai tutti gli id delle singole parole presenti nella frase!

    Per maggiori info sull'operatore IN di MySql guarda qui:
    http://dev.mysql.com/doc/refman/5.0/...ml#function_in

    Ciao!

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.