Have you ever wanted to generate a random string in MySQL, say for assigning a random password to a list of users? Well here is a useful tip!
[adsense:468x60:4496506397]
SELECT SUBSTRING(MD5(RAND()) FROM 1 FOR 6) AS password
This creates a 6 character (easy to change, as you can see) string where the characters are from the MD5 command (and therefore in the range a-z and 0-9).
[adsense:468x60:4496506397]

8 Comments
Excellent tip - this would
Excellent tip - this would allow you to have a function for generating md5 keys for sessions instead of perl code... put it all in the db.
Thank for MYSQL random string
Thank for MYSQL random string generator help.
Really nice
avoiding accidental bad words
Great tip!
For randomly assigned codes & passwords, we use a restricted alphabet that does not include vowels (or the digits 0 and 1 because they can resemble vowels). This is to avoid accidentally assigning a bad word, since virtually all bad words have at least one vowel.
Furthermore, our defaults are all uppercase.
Luckily we can slightly modify your tip with the mysql REPLACE and UPPER functions. Unfortunately, REPLACE doesn't seem to support regex and UPPER requires a call to CONVERT before it will work properly. So the code is a little convoluted, but it does seem to work fine...
MD5 does not use a-z and
MD5 does not use a-z and 0-9, it uses a-f and 0-9 - only a range of 16 characters.
thanks for sharing
thanks for sharing
Very good, thank you very
Very good, thank you very much !
this will use A-F and 0-9,
this will use A-F and 0-9, all uppercase and isn't truly random. a better way to do this is here:
http://mysql-0v34c10ck.blogspot.com/2011/05/true-random-database-and-table-name.html
if you use this for passwords this will create only weak passwords, no special characters and lowercase uppercase combinations.
thanks
thanks
Add new comment