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

    [MySQL]eliminare occorrenze case-insensitive

    ho una tabella MyISAM con 15000 campi....
    la tabella (utenti) è un bel po sp#tt@n@ta.... el senso che ci sono vari doppioni nei campi
    'user' e 'email' ch a me servono unici...

    codice:
    CREATE TEMPORARY TABLE temp
    SELECT *
    FROM utenti
    GROUP BY email,user
    ORDER BY id;
    
    TRUNCATE TABLE utenti;
    
    INSERT INTO utenti
    SELECT * FROM temp;
    cercando e ricercando delle query che mi potessero aiutare ho trovato quella di sopra (postata da Piero.mac)

    il problema è che io vorrei eliminare le occorrenze in maniera case-insensitive....
    poiche ci sono email uguali tipo pippo@libero.it e pIPPO@LIBERO.it

    help me pls
    There are 10 types of people in the world: Those who understand binary, and those who don't.

  2. #2
    di default i campi stringa sono case insensitive.

    Se invece sono case sensitive (binary) significa o che il campo e BINARY oppure se usi mysql >= 4.1 hai usato un COLLATION che termina in *_cs invece che *_ci

    Indovina che significano cs e ci ????

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Originariamente inviato da piero.mac
    di default i campi stringa sono case insensitive.

    Se invece sono case sensitive (binary) significa o che il campo e BINARY oppure se usi mysql >= 4.1 hai usato un COLLATION che termina in *_cs invece che *_ci

    Indovina che significano cs e ci ????
    ascii_general_ci
    è grave?


    la tabella mi è stata praticamente consegnata....ed io mo devo recuperare quanti + utenti
    come posso fare?
    There are 10 types of people in the world: Those who understand binary, and those who don't.

  4. #4
    Originariamente inviato da mascalzone
    ascii_general_ci
    è grave?


    la tabella mi è stata praticamente consegnata....ed io mo devo recuperare quanti + utenti
    come posso fare?
    Non so che OS hai ne' cosa hai fatto.... quindi se vuoi cambiare il collation fallo a tuo rischio e pericolo....

    piuttosto puoi sempre usare la funzione lower() per unificare il modo di scrittura e controllo mail.

    .....
    GROUP BY lower(email) ,user

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    ascii_general_ci dovrebbe essere case insensitive giusto?

    GROUP BY lower(email) ,user ...provato...nessun risultato


    non mi toccherà mica cancellarli a mano?
    There are 10 types of people in the world: Those who understand binary, and those who don't.

  6. #6
    Originariamente inviato da mascalzone
    ascii_general_ci dovrebbe essere case insensitive giusto?

    GROUP BY lower(email) ,user ...provato...nessun risultato


    non mi toccherà mica cancellarli a mano?
    scusa ... ma hai messo il lower anche a user???

    prova a fare un count() e vedi se trova doppioni..

    Codice PHP:
    SELECT *, COUNT(*) as tot
    FROM utenti
    GROUP BY lower
    (email), lower(user)
    HAVING tot 

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    Originariamente inviato da piero.mac
    scusa ... ma hai messo il lower anche a user???

    prova a fare un count() e vedi se trova doppioni..

    Codice PHP:
    SELECT *, COUNT(*) as tot
    FROM utenti
    GROUP BY lower
    (email), lower(user)
    HAVING tot 
    ok, finalmente risolto....

    grazie 1000 Piero!
    There are 10 types of people in the world: Those who understand binary, and those who don't.

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.