php - 使用mysql查询不使用任何循环打印相应数字的字符

标签 php mysql

我想通过使用php或mysql查询来打印相应数字的字符而不使用任何循环。我有一张名为“test”的表。

我的 table 是,

enter image description here

如果输入 = 011,则输出应为“thh”。如何在不使用任何循环的情况下像这样打印。请帮助我。

最佳答案

还是 PHP? 您还可以使用 SQL 查询填充这些数组。

 $input  = "011";
    $digits     = array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9");
    $characters = array("t", "h", "i", "r", "u", "v", "o", "n", "a", "m");

    $newphrase = str_replace($digits, $characters, $input);


    echo $newphrase; //Output: thh

//编辑 由于您请求的是纯 SQL 版本,这可能会有所帮助。 但我不太擅长 SQL,我相信 Leran 的答案更清晰! 不同之处在于我没有创建辅助表,很抱歉让您失望,但我使用了循环!

    SET @input = "011";
    SET @input_len = CHAR_LENGTH(@input);

     DELIMITER $$
     DROP PROCEDURE IF EXISTS test_mysql_while_loop$$
     CREATE PROCEDURE test_mysql_while_loop()
     BEGIN
     DECLARE x  INT;
     DECLARE str  VARCHAR(255);

     SET x = 1;
     SET str =  '';

     WHILE x  <= @input_len DO
     SET @inputindex = substring(@input , x, 1);
     select test.character from test where test.digits = @inputindex INTO @translation;
     SET  str = CONCAT(str,@translation,'');
     SET  x = x + 1; 
     END WHILE;

     SELECT str as result;
     END$$
    DELIMITER ;

CALL test_mysql_while_loop();

关于php - 使用mysql查询不使用任何循环打印相应数字的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49766695/

相关文章:

php - 根据全名php生成随机用户名

php - 如何将购物车表记录复制到另一个表中?

php - SQL 从表中选择品牌,如果另一个表有该品牌的产品

mysql - ActiveRecord::ConnectionNotEstablished 突然出现

php mySQL准备续集,只显示与登录用户的用户ID相关联的结果

javascript - 根据答案显示另一个字段

php - 向 PHP 核心添加函数

php - 如何在 PHP for MySQL 中格式化日期?

mysql - 将端口号从 3306 更改为 4470 后,percona 服务器监听 2 个端口

php - 如何循环遍历两个不同的表?