Fonctions d'informations
<<<
Fonctions diverses Fonctions à utiliser dans les clauses SELECT et WHERE
>>>

13.8 Autres fonctions
13 Fonctions à utiliser dans les clauses SELECT et WHERE
 Manuel de Référence MySQL 4.1 : Version Française

Fonctions sur les bits
Fonctions de chiffrements
Fonctions d'informations
->Fonctions diverses

13.8.4 Fonctions diverses

    COMPRESS(string_to_compress)
    Compresse une chaîne.
    
    mysql> SELECT LENGTH(COMPRESS(REPEAT("a",1000)));
            -> 21
    mysql> SELECT LENGTH(COMPRESS(""));
            -> 0
    mysql> SELECT LENGTH(COMPRESS("a"));
            -> 13
    mysql> SELECT LENGTH(COMPRESS(REPEAT("a",16)));
            -> 15
    COMPRESS() a été ajoutée en MySQL version 4.1.1. Elle requiert une bibliothèque de compression, comme zlib , compilée avec MySQL. Sinon, la valeur retournée sera toujours NULL .La chaîne compressée sera stockée de cette manière :
      Les chaînes vides sont stockées comme des chaînes vides.
      Les chaînes non-vides sont stockées dans le forma suivant : les quatre premiers octets représente la taille de la chaîne compressée, qui suit. Si la chaîne se termine par un espace, un caractère '.' sera ajouté pour éviter les problèmes avec les colonnes CHAR et VARCHAR . Utilisez CHAR ou VARCHAR pour stocker des chaînes compressées n'est pas recommandé. Il est mieux d'utiliser une colonne de type BLOB .
    FORMAT(X,D)
    Formate l'argument X en un format comme '#,###,###.##' , arrondi à D décimales. Si D vaut 0 , le résultat n'aura ni séparateur décimal, ni partie décimale :
    
    mysql> SELECT FORMAT(12332.123456, 4);
            -> '12,332.1235'
    mysql> SELECT FORMAT(12332.1,4);
            -> '12,332.1000'
    mysql> SELECT FORMAT(12332.2,0);
            -> '12,332'
    GET_LOCK(str,timeout)
    Tente de poser un verrou nommé str , avec un délai d'expiration ( timeout ) exprimé en seconde. Retourne 1 si le verrou a été posé avec succès, 0 si il n'a pas pu être posé avant l'expiration du délai et NULL si une erreur est survenu (comme par exemple un manque de mémoire, ou la mort du thread lui-même, par mysqladmin kill ). Un verrou sera levé lorsque vous exécuterez la commande RELEASE_LOCK() , GET_LOCK() ou si le thread se termine. Cette fonction peut être utilisée pour implémenter des verrous applicatifs ou pour simuler des verrous de lignes. Les requêtes concurrentes des autres clients de même nom seront bloquées ; les clients qui s'entendent sur un nom de verrou peuvent les utiliser pour effectuer des verrouillages coopératifs :
    
    mysql> SELECT GET_LOCK("lock1",10);
            -> 1
    mysql> SELECT IS_FREE_LOCK("lock2");
            -> 1
    mysql> SELECT GET_LOCK("lock2",10);
            -> 1
    mysql> SELECT RELEASE_LOCK("lock2");
            -> 1
    mysql> SELECT RELEASE_LOCK("lock1");
            -> NULL
    Notez que le deuxième appel à RELEASE_LOCK() retourne NULL car le verrou "lock1" a été automatiquement libéré par le deuxième appel à GET_LOCK() .

    INET_ATON(expr)
    Retourne un entier qui représente l'expression numérique de l'adresse réseau. Les adresses peuvent être des entiers de 4 ou 8 octets.
    
    mysql> SELECT INET_ATON("209.207.224.40");
           ->  3520061480
    Le nombre généré est toujours dans l'ordre des octets réseau ; par exemple, le nombre précédent est calculé comme ceci : 209*256^3 + 207*256^2 + 224*256 +40 .
    INET_NTOA(expr)
    Retourne l'adresse réseau (4 ou 8 octets), de l'expression numérique exp :
    
    mysql> SELECT INET_NTOA(3520061480);
           ->  "209.207.224.40"
    IS_FREE_LOCK(str)
    Regarde si le verrou nommé str peut être librement utilisé (i.e., non verrouillé). Retourne 1 si le verrou est libre (personne ne l'utilise), 0 si le verrou est actuellement utilisé et NULL si une erreur survient (comme un argument incorrect).
    IS_USED_LOCK(str)
    Vérifie si le verrou appelé str est actuellement posé ou pas. Si c'est le cas, la fonction retourne l'identifiant de connexion qui a le verrou. Sinon, elle retourne NULL . IS_USED_LOCK() a été ajouté en MySQL version 4.1.0.

    MASTER_POS_WAIT(log_name, log_pos)
    Bloque le maître jusqu'à ce que l'esclave atteigne une position donnée dans le fichier d'historique principal, durant une replication. Si l'historique principal n'est pas initialisé, retourne NULL . Si l'esclave n'est pas démarré, le maître restera bloqué jusqu'à ce que l'esclave soit démarré et ai atteint la position demandée. Si l'esclave a déjà dépassé cette position, la fonction se termine immédiatement. La valeur retournée est le nombre d'évènements qui a du être traité pour atteindre la position demandée, ou NULL en cas d'erreur. Cette fonction est très utile pour contrôler la synchronisation maître-esclave, mais elle a été initialement écrite pour faciliter les tests de replications.

    RELEASE_LOCK(str)
    Libère le verrou nommé str , obtenu par la fonction GET_LOCK() . Retourne 1 si le verrou a bien été libéré, 0 si le verrou n'a pas été libéré par le thread (dans ce cas, le verrou reste posé) et NULL si le nom du verrou n'existe pas. Le verrou n'existe pas si il n'a pas été obtenu par la fonction GET_LOCK() ou si il a déjà été libéré.

    La commande DO est utilisable avec RELEASE_LOCK() . Syntaxe des DO .

    UNCOMPRESS(string_to_uncompress)
    Décompresse une chaîne compressée par la fonction COMPRESS() .
    
    mysql> SELECT UNCOMPRESS(COMPRESS("any string"));
            -> 'any string'
    UNCOMPRESS() a été ajouté en MySQL version 4.1.1. Elle requiert une bibliothèque de compression comme zlib , compilée avec MySQL. Sinon, elle retourne NULL .

    UNCOMPRESSED_LENGTH(compressed_string)
    Retourne la taille de la chaîne compressée avant compression.
    
    mysql> SELECT UNCOMPRESSED_LENGTH(COMPRESS(REPEAT("a",30)));
            -> 30
    UNCOMPRESSED_LENGTH() a été ajoutée en MySQL version 4.1.1.

<< Fonctions diverses >>
Fonctions d'informations Autres fonctions Fonctions à utiliser dans les clauses SELECT et WHERE