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

    LIKE: comportamento inatteso

    Ciao a tutti,
    ho riscontrato un comportamento particolare dell'operatore LIKE di cui non riesco a capirne le cause urtroppo.

    Ho una tabella con la seguente struttura:
    codice:
    CREATE TABLE `superusers` (
      `user_id` mediumint(8) unsigned NOT NULL default '0',
      `username` varchar(25) NOT NULL default '',
      `permessi_mod` varchar(4) NOT NULL default '',
      PRIMARY KEY  (`user_id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
    Popolata con questi dati:
    codice:
    INSERT INTO `superusers` VALUES (2, 'admin', '1000');
    INSERT INTO `superusers` VALUES (3, 'moderatore', '0100');
    Se eseguo la seguente query ottengo "admin" come mi attendo:
    SELECT user_id,username,permessi_mod FROM superusers WHERE permessi_mod LIKE '1%' ORDER BY username ASC

    Se invece eseguo questa query non ottengo alcun record, anche se teoricamente dovrei ottenere "moderatore":
    SELECT user_id,username,permessi_mod FROM superusers WHERE permessi_mod LIKE '0%' ORDER BY username ASC

    Non capisco.. avete qualche idea?

    Ciao e grazie!

  2. #2
    mi pare strano. Il campo e' varchar ... sicuro di non avere qualcosa di strano? che versione hai di mysql e con cosa esegui la query?

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

  3. #3
    MySQL 4.1.7

    Query da php...

    Anche io ma nn capisco il motivo.. i campi sono del tipo che ho scritto.. quel codice l'ho generato esportando la tabella..

    Per esigenze nuove or ora ho allungato il campo di un carattere.. E cosa strana è che ad esempio con '00101' ottengo il mio 'moderatore', con '01000' invece non ottengo nulla..


  4. #4
    Originariamente inviato da superpelo
    MySQL 4.1.7

    Query da php...

    Anche io ma nn capisco il motivo.. i campi sono del tipo che ho scritto.. quel codice l'ho generato esportando la tabella..

    Per esigenze nuove or ora ho allungato il campo di un carattere.. E cosa strana è che ad esempio con '00101' ottengo il mio 'moderatore', con '01000' invece non ottengo nulla..

    non c'entra nulla mysql. bisognerebbe vedere il codice php.

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

  5. #5
    Hai ragione.. era rimasto un if in più da passati utilizzi..

    Scusate..


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.