Maison  >  Article  >  base de données  >  Comment utiliser la fonction d'erreur floor() et la fonction rand() ensemble dans Mysql

Comment utiliser la fonction d'erreur floor() et la fonction rand() ensemble dans Mysql

王林
王林avant
2023-05-26 22:59:081786parcourir

    1. Fonction floor

    1.1 Le rôle de la fonction floor

    floor() Le rôle de la fonction floor() est de renvoyer le plus grand entier inférieur ou égal à la valeur

    Exemple : select floor (1.1) de qs_ad_category

    L'instruction de requête ci-dessus Le résultat est 1. Puisque le plus grand entier inférieur à 1,1 est 1, le résultat est 1

    Comment utiliser la fonction derreur floor() et la fonction rand() ensemble dans Mysql

    Remarque : Limitations de la fonction floor() : mysql 5.0 et supérieur

    2. Fonction rand()

    2.1 rand( ) Le rôle de la fonction

    Le rôle de la fonction rand() : Obtenez un nombre aléatoire à virgule flottante (une décimale inférieure à 0), tandis que rand(0) obtient un valeur décimale fixe

    Exemple : sélectionnez rand() dans qs_ad_category ;

    Le résultat est une décimale aléatoire à virgule flottante : 0,7450851357961866

    Comment utiliser la fonction derreur floor() et la fonction rand() ensemble dans Mysql

    3. La fonction floor() coopère avec la fonction rand()

    3.1. utilisation de deux fonctions de combinaison

    Puisque la fonction rand() obtient un nombre à virgule flottante inférieur à 1, c'est-à-dire, par exemple, 0,7450851357961866

    La fonction Floor() arrondit la valeur entre parenthèses à l'entier le plus proche qui est inférieur supérieur ou égal à celui-ci et affiche le résultat. Par exemple, le résultat de rand() ci-dessus est 0,7450851357961866, alors l'entier maximum est "0", donc :

    select floor(rand(0)) from qs_ad_category La valeur du résultat est "0".

    S'il s'agit de rand()*2, le résultat rand() peut être supérieur à 1. Ensuite, combiné avec la fonction floor(), la valeur finale peut être 1

    select count(*),concat(user(),floor(rand(0)*2))x from information_schema.tables

    4 Injection d'erreur basée sur floor(). function

    4.1 Composants de l'injection d'erreur

    floor() Pour être précis, l'injection d'erreur doit être floor, count, group by conflict error, count(*), rand(), group by sont indispensables

    4.2 Analyse des composants de injection d'erreur

    fonction count() : fonction de comptage, une fonction utilisée pour calculer la somme des données. Cette fonction n'a qu'un seul ensemble de résultats.

    fonction floor() + fonction rand() : obtenez la valeur entière de 0 ou 1

    fonction group by : lors du regroupement de données, elle vérifiera d'abord si la valeur existe dans la table virtuelle, et l'insérera si ce n'est pas le cas existe ; s'il existe, count () plus 1, floor(rand(0)2) sera exécuté une fois lors de l'utilisation de group by S'il n'y a aucun enregistrement dans la table virtuelle, il sera à nouveau exécuté lors de l'insertion dans la table virtuelle.

    4.3 Affichage des erreurs d'injection

    使用报错获取当前用户信息
    select count(*),concat(user(),floor(rand(0)*2))x from information_schema.tables group by x

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

    Déclaration:
    Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer