2012-08-04 10 views
8

Non so quale funzione venga chiamata ma sto provando a selezionare una riga che corrisponde/ha il maggior numero di caratteri per l'output. Ecco cosa ho provato.mysql - seleziona la corrispondenza con il maggior numero di caratteri

select * from table where title like '%alotofcharactershere%' limit 1 

È possibile che questo funziona solo per l'intera parola di: alotofcharactershere

Quello che voglio veramente è per la rottura in su: un l o t o f C a r a c t e r s h e r e e trovare una riga che ha i caratteri più corrispondenti danno.

Si prega gentilmente di aiutare se sapete di cosa sto parlando. Grazie in anticipo.

risposta

1

Sto scavando in giro e non sono un esperto di SQL ma stavo pensando alle righe dell'ordine per lunghezza del carattere dopo una sostituzione di caratteri che non corrispondono.

Qualcosa di simile: SELECT * FROM your_table ORDER BY LENGTH(REGEXP_REPLACE(title, '[^abcdefg]', ''));

2 problemi però. Non corrisponde ai caratteri più diversi trovati. Quindi aaaa avrà un valore maggiore di abc. E penso che vuoi dire che vuoi essere di valore superiore. Il secondo problema è probabilmente il più grande, mySQL non supporta questa regex. E non sono sicuro che qualcosa lo faccia. Ma ho trovato questo articolo: https://launchpad.net/mysql-udf-regexp

Anche se penso che ci deve essere qualcosa di molto più semplice e qualcosa che funziona davvero fuori dagli schemi, questa risposta potrebbe solo far scattare la mente di alcuni a pensare fuori dagli schemi.

Ci anche potrebbe essere una soluzione con un sacco di join, ma questo è molto probabilmente più lento di selezionare tutto e risolvere la cosa in php (o simile)

+0

Voglio dire, possiamo sempre sottostrare i primi caratteri e fare un rlike, ma volevo provare qualcosa di nuovo, quindi questo ha portato a questo .... – thevoipman

1

Non è chiaro cosa si sta cercando di realizzare quindi mi chiedo se hai esaminato Full Text Searches. La possibilità di trovare rilevanza potrebbe darvi alcune idee o alternative.

Problemi correlati