Concatenar strings MYSQL
25/05/2017
0
Estou com um problema para concatenar duas strings em uma procedure, preciso que ela retorne números e letras aleatórias.
Se tiver alguma forma melhor aceito dicas :)
Se tiver alguma forma melhor aceito dicas :)
PROCEDURE Base.ALEATORIO() BEGIN DECLARE str VARCHAR(255) DEFAULT '123456789ABCDEFGHIJA'; -- Cacacteres possiveis DECLARE pa INT DEFAULT 0; -- posicao aleatoria DECLARE i INT DEFAULT 0; -- Contador loop DECLARE digitos INT DEFAULT 4; -- Quantidade de Digitos DECLARE res VARCHAR(255); -- Resultado WHILE i <= digitos -1 DO SET pa = (SELECT FLOOR(( SELECT character_length( str ) )+(rand()*( 1 - ( SELECT character_length( str ) ))))); SET res = (res ,SUBSTRING(str FROM pa FOR 1)); SET i = i + 1; END WHILE; SELECT res; END
Carlos Eduardo
Curtir tópico
+ 0
Responder
Posts
25/05/2017
Luiz Santos
Bom dia Souza.
É que você precisa que ela retorne números e letras aleatórias.
Se fossem só números, te diria para usar o código abaixo:
Onde o 0 e o 10 no comando servem para você determinar o range em que seu número aleatório vai estar.
No caso do meu exemplo, ele retorna um numero aleatório entre 1 e 10.
Para concatenar 2 strings, use o comando CONCAT(string1,string2), igual ao exemplo abaixo.
Espero ter ajudado.
Grande abraço
É que você precisa que ela retorne números e letras aleatórias.
Se fossem só números, te diria para usar o código abaixo:
SELECT FLOOR(0 + RAND() * 10) AS ALEATORIO
Onde o 0 e o 10 no comando servem para você determinar o range em que seu número aleatório vai estar.
No caso do meu exemplo, ele retorna um numero aleatório entre 1 e 10.
Para concatenar 2 strings, use o comando CONCAT(string1,string2), igual ao exemplo abaixo.
SELECT CONCAT('A','B')
Espero ter ajudado.
Grande abraço
Responder
25/05/2017
Carlos Eduardo
Bom dia Souza.
É que você precisa que ela retorne números e letras aleatórias.
Se fossem só números, te diria para usar o código abaixo:
Onde o 0 e o 10 no comando servem para você determinar o range em que seu número aleatório vai estar.
No caso do meu exemplo, ele retorna um numero aleatório entre 1 e 10.
Para concatenar 2 strings, use o comando CONCAT(string1,string2), igual ao exemplo abaixo.
Espero ter ajudado.
Grande abraço
É que você precisa que ela retorne números e letras aleatórias.
Se fossem só números, te diria para usar o código abaixo:
SELECT FLOOR(0 + RAND() * 10) AS ALEATORIO
Onde o 0 e o 10 no comando servem para você determinar o range em que seu número aleatório vai estar.
No caso do meu exemplo, ele retorna um numero aleatório entre 1 e 10.
Para concatenar 2 strings, use o comando CONCAT(string1,string2), igual ao exemplo abaixo.
SELECT CONCAT('A','B')
Espero ter ajudado.
Grande abraço
Opa vlw,
Eu Utilizo
"SELECT FLOOR(0 + RAND() * 10) "
porem de outra forma, utilizo ele para pegar uma posição aleatória da minha variável str,
utilizando como parametro a quantidade de caracteres.
"(SELECT FLOOR(( SELECT character_length( str ) )+(RAND()*( 1 - ( SELECT character_length( str ) )))));"
minha dificuldade está quando vou concatenar o meu valor anterior com novo em um loop,
Responder
Clique aqui para fazer login e interagir na Comunidade :)