Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439

    [mysql] like any non va

    codice:
    update tb1, tb2
    set part = -1
    where
    tb1.email like any (
      select concat( '%', dx ) from (
        select distinct reverse( left( reverse( email ),locate( '@',reverse( email ) ) - 1 ) ) as dx
        from tb2
        order by dx
      ) as c
    );
    salve, come faccio a fare un update su una tabella1 contenente email con dominio ricavato dalla tabella2?

    La subselect interna funziona, e cioè ricava tutti i domini delle email presenti nella tabella2.
    Ora devo fare update sulla tabella1 per tutte le righe aventi quel dominio.
    Qualcuno a qualche idea?

    La sintassi dovrebbe essere LIKE ANY ma non funziona. Errore di sintassi.
    Con LIKE da solo ritorna Subquery returns more than 1 row.
    Al contrario = ANY funziona, ma non è quello che mi serve.
    Ho provato con LIKE EXISTS ma mi ritorna 0 righe updatate, e quindi non funziona...
    わさび

  2. #2
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    a nessuno gli è mai capitata una situazione analoga?
    così comunque viene meglio
    codice:
    update tb1, tb2
    set part = -1
    where
    tb1.email like any (
      select concat( '%@', dx ) from (
        select distinct reverse( left( reverse( email ),locate( '@',reverse( email ) ) - 1 ) ) as dx
        from tb2
        order by dx
      ) as c
    );
    わさび

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.