Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Substring interna alla select

    Buon giorno, ho questa curiosità.
    Ho un campo che contiene un valore alfanumerico da 12.
    Per fare una ricerca ed estrapolare i dati che mi servono, devo digitare lo stesso valore ma da 10..

    Domanda: se digito un valore per la ricerca, da 12, non ho problemi, ma se è da 10 come faccio?
    UNa mezza idea ce l'ho,ma..non so come metterla in pratica.
    Credo che debba utilizzare una substring all'interno della select , per quel valore, ma come si fà?

    Al momento utilizzo questo:
    codice:
    $cf ='CF';
    $old_cod = $tMatricola;
    $tMatricola_new = substr($old_cod,0,1).substr($old_cod,2,3).substr($old_cod,6,6);
    
    select * from DF_2005_2006 p inner join DA_2005_2006 s on p.COD_IMM  = s.COD_IMM and p.ANNO = s.ANNO
    where p.COD_IMM = '".$tMatricola_new."' order by p.RP='".$cf."' desc
    Spero abbiate capito il mio probl.
    Grazie mille....

  2. #2
    Non ti converrebbe introdurre un nuovo campo di 10 caratteri (con indice), inserirci la parte del codice su cui devi effettuare la ricerca e creare la query in modo che utilizzi quel valore per selezionare i record?

  3. #3
    where substring(CAMPO_DA_CONFRONTARE,start,end)=il tuo valore

    dici cosi?
    http://www.anobii.com/isalreadyinuse

  4. #4
    ho trovato qualcosa, ma nn riesco a farlo girare...

    codice:
    where (substring(p.COD_IMM,0,1),substring(p.COD_IMM,2,3),substring(p.COD_IMM,6,6))  = '".$old_cod."' order by p.RP='".$cf."' desc
    E' possibile fare qualcosa del genere?

  5. #5
    Originariamente inviato da ANTAGONIA
    ho trovato qualcosa, ma nn riesco a farlo girare...

    codice:
    where (substring(p.COD_IMM,0,1),substring(p.COD_IMM,2,3),substring(p.COD_IMM,6,6))  = '".$old_cod."' order by p.RP='".$cf."' desc
    E' possibile fare qualcosa del genere?
    Se vuoi concatenare piu substring devi usare la concat

    CONCAT(sustring(...).,sustring(...)) etc stc
    http://www.anobii.com/isalreadyinuse

  6. #6
    grazie...si era quello che stavo cercando, ma purtroppo non sembra non funzionare...

    in pratica, corregetemi se sbaglio:
    prendo 10 valori, del valore da 12, togliendo quelli che sono nella posizione, 2° e 6°, e poi vedo se sono uguali, al valore da 10 che gli sto passando...

    codice:
    where CONCAT(substring(p.COD_IMM,0,1),substring(p.COD_IMM,2,3),substring(p.COD_IMM,6,6))  = '".$old_cod."'
    Insomma è cosi?
    grazie ancora

  7. #7
    Si è questo il concetto

    Fai una prova facendo

    SELECT CONCAT(substring(p.COD_IMM,0,1),substring(p.COD_IM M,2,3),substring(p.COD_IMM,6,6))

    from tua tabella

    per vedere le le substring sono corrette
    http://www.anobii.com/isalreadyinuse

  8. #8
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Il primo carattere della stringa ha indice 1 e non 0.

  9. #9
    ok perfetto vi ringrazio in pratica adesso è cosi:

    codice:
    select * from DF_2005_2006 p inner join DA_2005_2006 s on p.COD_IMM  = s.COD_IMM and p.ANNO = s.ANNO 
    where CONCAT(substring(p.COD_IMM,1,1),substring(p.COD_IMM,3,3),substring(p.COD_IMM,7,8))  = '".$old_cod."' order by p.RP='".$cf."' desc
    seguite un'attimo questo ragionamento sulla substring:

    ho il valore da 12 cosi composto: 102012109934
    e quello che gli passo da 10: 1x201x109934
    le 'x' sono per segnalare le posizioni dei caratteri che voglio togliere
    quindi la suddetta substring è corretta?

    grazie ancora.....

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.