Reputation: 823
I'm was trying to make function that will return random character. What I have is a string that contains alphanumerics. In Postgresql I can set text as array, but I don't know how MySQL do same. for example:
in postgresql
DECLARE chars TEXT[] := '{0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}';
So when I want get chars[10]
it will return A
. How to do this in MySQL?
Upvotes: 0
Views: 298
Reputation: 10163
I think the questoin is not about arrays, it is about get random char, right? In this case You can use next approach in MySQL:
SELECT SUBSTRING(
'0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz',
ROUND(RAND()*61)+1,
1
) as random_char;
The SUBSTRING function returns one char from random position.
Try it on SQLize.online
Upvotes: 1
Reputation: 222462
Starting MySQL 5.7, one option is to use a JSON array:
set @chars = '["0", "1", "A", "B"]';
select json_unquote(json_extract(@chars, '$[2]')) as value_at_index_2;
Yields:
| value_at_index_2 | | :--------------- | | A |
Upvotes: 1