我想通过使用php或mysql查询来打印相应数字的字符而不使用任何循环。我有一张名为“test”的表。
我的 table 是,
如果输入 = 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/