Visualizzazione dei risultati da 1 a 3 su 3

Discussione: mysql instr

  1. #1

    mysql instr

    Buon giorno
    su un DB mysql ho una tabella con un campo testo al cui interno c'è la stringa YYY seguita da 4 numeri (es. YYY1234, YYY7532 ecc.). Con una query devo estrarre questi valori il problema è che la stringa si trova in posizione sempre diversa e poichè il testo da cercare cambia sempre non posso usare INSTR. Ho cercato di usare REGEXPR all'interno di INSTR
    SELECT * , mid( `Testo_Operazione` , INSTR( `Testo_Operazione` ,REGEXPR 'YYY[0-9]{4}' ) ecc...
    ma non funziona. Qualcuno mi sa aiutare?
    Grazie

  2. #2
    REGEXP in MySQL è praticamente inutile, non fa quello che pensi.

    Devi trovare YYY con SUBSTRING_INDEX() e passare il risultato a INSTR()
    http://dev.mysql.com/doc/refman/5.6/...ubstring-index
    STK/Unit: Unit Test framework per MariaDB
    http://stk.wikidot.com/stk-unit

  3. #3

    risolto

    la soluzione più semplice che ho trovato è stata quella di utilizzare la REGEXPR nel WHERE invece che nel INSTR quindi ho costruito la query così:
    SELECT * , mid( `Testo_Operazione` , INSTR( `Testo_Operazione` ,'YYY' ),7) AS nrx FROM tabella WHERE `Testo_Operazione` REGEXPR 'YYY[0-9]{4}'

    Grazie 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 © 2026 vBulletin Solutions, Inc. All rights reserved.