• <small id='1ZNDd'></small><noframes id='1ZNDd'>

        <bdo id='1ZNDd'></bdo><ul id='1ZNDd'></ul>
      <i id='1ZNDd'><tr id='1ZNDd'><dt id='1ZNDd'><q id='1ZNDd'><span id='1ZNDd'><b id='1ZNDd'><form id='1ZNDd'><ins id='1ZNDd'></ins><ul id='1ZNDd'></ul><sub id='1ZNDd'></sub></form><legend id='1ZNDd'></legend><bdo id='1ZNDd'><pre id='1ZNDd'><center id='1ZNDd'></center></pre></bdo></b><th id='1ZNDd'></th></span></q></dt></tr></i><div id='1ZNDd'><tfoot id='1ZNDd'></tfoot><dl id='1ZNDd'><fieldset id='1ZNDd'></fieldset></dl></div>
    1. <legend id='1ZNDd'><style id='1ZNDd'><dir id='1ZNDd'><q id='1ZNDd'></q></dir></style></legend><tfoot id='1ZNDd'></tfoot>

        从基数 10 到基数 26 只用字母,所以 26 将是 aa

        时间:2024-05-11

        <small id='ArXyY'></small><noframes id='ArXyY'>

        <tfoot id='ArXyY'></tfoot>

          <i id='ArXyY'><tr id='ArXyY'><dt id='ArXyY'><q id='ArXyY'><span id='ArXyY'><b id='ArXyY'><form id='ArXyY'><ins id='ArXyY'></ins><ul id='ArXyY'></ul><sub id='ArXyY'></sub></form><legend id='ArXyY'></legend><bdo id='ArXyY'><pre id='ArXyY'><center id='ArXyY'></center></pre></bdo></b><th id='ArXyY'></th></span></q></dt></tr></i><div id='ArXyY'><tfoot id='ArXyY'></tfoot><dl id='ArXyY'><fieldset id='ArXyY'></fieldset></dl></div>

            • <bdo id='ArXyY'></bdo><ul id='ArXyY'></ul>
                <legend id='ArXyY'><style id='ArXyY'><dir id='ArXyY'><q id='ArXyY'></q></dir></style></legend>

                  <tbody id='ArXyY'></tbody>
                1. 本文介绍了从基数 10 到基数 26 只用字母,所以 26 将是 aa的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  我在Mysql中有CONV函数:

                  I have the CONV function in Mysql:

                  mysql> CONV(26,10,26)
                        -> 10
                  

                  但我想要这样的东西:

                  mysql> CONV_LETTERS(26,10,26)
                        -> aa
                  

                  如何在 MySQL 中将基数从 10 转换为基数 26,但只能使用字母以使数字 26 变为 aa?

                  更新

                  到目前为止:

                  delimiter //
                  CREATE PROCEDURE `base10_to_base26_letters`(IN `nr` BIGINT)
                  BEGIN
                  
                  SET @letters='abcdefghijklmnopqrstuvwxyz';
                  select SUBSTRING(@letters,`nr`+1,1);
                  
                  END//
                  

                  更新 2

                  试图将 this php 函数转换为 MySQL 过程.

                  Trying to convert this php function to MySQL procedure.

                  PHP函数:

                  function generateAlphabet($na) {
                      $sa = "";
                      while ($na >= 0) {
                          $sa = chr($na % 26 + 65) . $sa;
                          $na = floor($na / 26) - 1;
                      }
                      return $sa;
                  }
                  

                  到目前为止我的 MySQL 程序:

                  My MySQL procedure so far:

                  delimiter //
                  CREATE PROCEDURE `base10_to_base26_letters`(IN `nr` BIGINT)
                  BEGIN
                  
                  SET @n=`nr`,@letters='abcdefghijklmnopqrstuvwxyz',@r='';
                  while @n>=0 do
                  set @n=@n/26-1,@r=concat(SUBSTRING(@letters,@n%26,1),@r);
                  end while;
                  select @r;
                  
                  END//
                  

                  为什么我尝试的任何数字都只能得到 z?

                  Why I only get z for any number I tried?

                  推荐答案

                  此存储函数将单个 int 转换为 base26:

                  This stored function converts a single int to base26:

                  DROP FUNCTION IF EXISTS `base10to26`;
                  DELIMITER ;;
                  
                  CREATE FUNCTION `base10to26`(`theNumber` INT(11) UNSIGNED) 
                  RETURNS VARCHAR(20) READS SQL DATA
                  BEGIN
                      DECLARE colTxt VARCHAR(20);
                      DECLARE value  INT(11);
                      SET colTxt = '';
                  
                      REPEAT
                          SET value  = theNumber % 26;
                          IF value = 0 THEN SET value = 26; END IF;
                          SET theNumber = (theNumber - value) / 26;
                          SET colTxt = CONCAT(CHAR(value+64), colTxt);
                      UNTIL theNumber = 0 END REPEAT;
                  
                      RETURN colTxt;
                  END;;
                  DELIMITER ;
                  

                  这篇关于从基数 10 到基数 26 只用字母,所以 26 将是 aa的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:Laravel 中的 mariaDB JSON 支持 下一篇:同一个查询涉及两个数据库时如何执行PDO语句?

                  相关文章

                  <legend id='xW8vh'><style id='xW8vh'><dir id='xW8vh'><q id='xW8vh'></q></dir></style></legend>
                2. <tfoot id='xW8vh'></tfoot>

                  <small id='xW8vh'></small><noframes id='xW8vh'>

                3. <i id='xW8vh'><tr id='xW8vh'><dt id='xW8vh'><q id='xW8vh'><span id='xW8vh'><b id='xW8vh'><form id='xW8vh'><ins id='xW8vh'></ins><ul id='xW8vh'></ul><sub id='xW8vh'></sub></form><legend id='xW8vh'></legend><bdo id='xW8vh'><pre id='xW8vh'><center id='xW8vh'></center></pre></bdo></b><th id='xW8vh'></th></span></q></dt></tr></i><div id='xW8vh'><tfoot id='xW8vh'></tfoot><dl id='xW8vh'><fieldset id='xW8vh'></fieldset></dl></div>

                      • <bdo id='xW8vh'></bdo><ul id='xW8vh'></ul>