使用string的唯一int(11)mysql值

I have a column in my database that is a int(11) and sometimes I fail to match a user name to the database of ids because the name is slightly different (i.e. John Doe instead of Johnathan Doe). Normal ids start in the 11000 range so I would like to convert their name to integer and prepend 00's or something so I can trigger a flag for someone to review and update. I know I can use str_pad to get the 00's but I can't seem to generate a set amount of numbers to be somewhat unique from the name. I know there will be a high probability of duplicates but I am not sure what else I can do with a column that is primary/unique. Any help would be greatly appreciated.

Example using mt_rand and str_pad:

str_pad(mt_rand(100000000,999999999),11,'00',STR_PAD_LEFT);

Anyone have a better option that maybe uses the Name string?

I have a column in my database that is a int(11)

That column's an integer. At the storage level, the "11" doesn't mean a thing.

Imagine that you have a large table of user names, and somebody tries to enter 'John Smith' for the 40th time. What do you want to do? Do you want somebody to compare it to all the other variants? Do you want to identify and review variant spellings, like 'Johnathan', 'Jonathon', 'John', and 'Jhon'? Big decisions, but they don't affect how to handle id numbers that need to be reviewed.

To identify rows that need to be reviewed, for whatever reason, you're far better off putting their keys into another table.

create table review_sets (
  set_id integer not null,
  set_created timestamp not null default now(),
  rationale varchar(100) not null default 'Duplicate of existing user?',
  primary key (set_id),
  unique (set_created)
);

create table review_ids (
  set_id integer not null,
  user_id integer not null,
  primary key (set_id, user_id),
  foreign key (set_id) references review_sets (set_id),
  foreign key (user_id) references users (user_id)         -- Not shown.
);

The column review_sets.rationale lets you use distinguish spelling issues from, say, late payments or site abuse. The table of review_ids lets you limit the ids to a few variations rather than all possible variations. (But I'm not sure how useful that might be.)

You might want to add columns that identify the reviewer, the time the review was completed, and the decision reached by that reviewer. Depending on your application, you might be able to just delete rows after you've reached a decision.