Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni
Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni
Redmi Pad 2 9.7 punta su un display ampio e fluido, una batteria capace di accompagnare l'uso quotidiano senza ansie da ricarica e un prezzo accessibile, a partire da 179,90 euro per la versione con 64 GB di storage. Lo Snapdragon 6s 4G Gen 2 e i 4 GB di RAM della configurazione più diffusa frenano però chi cerca reattività e multitasking spinto: ecco il bilancio dopo due settimane di prova diretta
Peugeot Polygon Concept: ecco il futuro delle utilitarie
Peugeot Polygon Concept: ecco il futuro delle utilitarie
Polygon è la concept car di Peugeot che mostra il futuro delle soluzioni del segmento B: tra design compatti e innovativi affiancati da dimensioni compatte uno scherzo dalla manovrabilità incredibile per le manovre a bassa velocità
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione
OPPO ha portato in Italia, dal 1° luglio 2026, Reno16 Pro: display AMOLED da 6,32 pollici a 144Hz, tripla fotocamera con sensore principale da 200 megapixel, chip Dimensity 8550 Super e batteria da 6000mAh, al prezzo di lancio di 899 euro. Lo abbiamo provato per due settimane insieme al nuovo accessorio Bubble, per capire se la formula compatta della serie regge ancora di fronte a un listino da 1099 euro
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 07-03-2008, 13:01   #1
amedeoviscido
Senior Member
 
Iscritto dal: May 2005
Città: Napoli - Fuorigrotta
Messaggi: 471
[SQL] Cercare valori in tabella con chiave "simile"

Ciao, ho un problema che ho già risolto, ma vorrei da voi un consiglio.
Il problema è individuare le righe che hanno parte della chiave in comune. Supponiamo di avere la tabella PROVA(ID) con ID chiave primaria.
Ho bisogno di trovare le righe tali che ID della 1° riga sia inserito IN FONDO alla 2° riga. In pratica, facciamo un esempio:

PROVA
1234567890
12345
67890

Mi deve trovare 67890 unitamente al riferimento 1234567890.

Io ho risolto così (PostgreSQL):

SELECT B.id, A.id FROM prova A, prova B WHERE A.id<>B.id AND strpos(A.id,B.id)>0

Ovvero con strpos, controllo che l'ID di B faccia parte dell'ID di A.
Tutto ok direte voi: non proprio direi io.
Con 5000 righe ci impiega 1 minuto, non sarebbe un problema, se non per il fatto che per fare un report ne deve fare a centinaia di queste query!
Io prima facevo semplicemente:

SELECT A.id,B.id FROM prova A JOIN prova B ON A.id=B.id
E ci metteva 15 ms. Il problema è che adesso le chiavi sono fatte in modo tale che se una finisce come l'altra allora deve trovare la "primaria".
__________________
Acquisti sul mercatino: grabrihc, LucaXbox360, Yarsha,micanto1,American horizo,Fnac,schumyFast,STECCO,Ezechiele25,17
Vendite sul mercatino: musodatopo,alexbands,mspr,anto.wajo
amedeoviscido è offline   Rispondi citando il messaggio o parte di esso
Old 07-03-2008, 14:07   #2
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
Io farei cosi':

Codice:
SELECT A.ID,B.ID FROM prova A,prova B WHERE A.id<>B.id
   AND length(A.ID)>=length(B.ID)
   AND SUBSTR(A.ID,length(A.ID)-Length(B.ID),length(B.ID))=B.ID
Ovvero come prima, ma come filtro anche
ma solo per i record di A la cui ultima parte di A.ID, lunga quanto B.ID, sia esattamente uguale a B.ID

(la clausola sulle lunghezze sarebbe da leggersi come:
ma solo tra le righe che hanno la lunghezza di A.ID >= alla lunghezza di B.ID,
altrimenti potrebbero effetti indesiderati a seconda del implementazione della SUBSTR su Postgres, in presenza di un indice di partenza negativo)

forse addirittura si puo' fare cosi':
Codice:
SELECT A.ID,B.ID FROM prova A,prova B WHERE A.id<>B.id
   AND length(A.ID)>=length(B.ID)
   AND SUBSTR(A.ID,length(A.ID)-Length(B.ID))=B.ID
Sperando che la Substring abbia il significato di "fino alla fine della stringa" quando non c'e' il terzo parametro
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 07-03-2008, 23:42   #3
amedeoviscido
Senior Member
 
Iscritto dal: May 2005
Città: Napoli - Fuorigrotta
Messaggi: 471
Grazie per la risposta, domani faccio delle prove in ufficio (cronometrate) e ti faccio sapere, sarai curioso!
In effetti controllare la posizione di una stringa all'interno di un'altra è meno efficiente che il confronto diretto di due stringhe, a rigor di logica dovrebbe essere più veloce, vedremo!
__________________
Acquisti sul mercatino: grabrihc, LucaXbox360, Yarsha,micanto1,American horizo,Fnac,schumyFast,STECCO,Ezechiele25,17
Vendite sul mercatino: musodatopo,alexbands,mspr,anto.wajo

Ultima modifica di amedeoviscido : 07-03-2008 alle 23:47.
amedeoviscido è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni Redmi Pad 2 9.7: ampio display, economico e peso...
Peugeot Polygon Concept: ecco il futuro delle utilitarie Peugeot Polygon Concept: ecco il futuro delle ut...
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione Reno16 Pro: il compatto di OPPO punta su fotocam...
 Hisense 55U7SE: tuttofare e accessibile, il MiniLED per film, sport e gioco Hisense 55U7SE: tuttofare e accessibile, il Min...
Kindle Scribe Colorsoft: riduce le cornici e diventa a colori, ma il prezzo è alto Kindle Scribe Colorsoft: riduce le cornici e div...
Costruire una VGA in casa senza un chip ...
Renault ha rifiutato due volte BYD: l'az...
Appena 9.000 imprese innovative in 25 an...
Anthropic (di nuovo) sotto accusa: chies...
HP OMEN MAX 16 con RTX 5080 e Core Ultra...
Tilly Norwood arriva al cinema: via all'...
5G slicing per le comunicazioni di emerg...
BYD SHARK, 436 CV e fino a 90 km in elet...
Quali sono i migliori produttori di tecn...
Come guardare YouTube senza pubblicit&ag...
Il telescopio spaziale europeo ESA Eucli...
Addio stampa 3D a strati: il metodo che ...
Data center ed energia green: Aruba acqu...
Windows scarica software non richiesto q...
Auto europea, Bloomberg: uno stabiliment...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 18:53.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v