Mysql
 sql >> база данни >  >> RDS >> Mysql

Генериране на уникални номера на mysql

Макар да изглежда малко неудобно, ето какво може да се направи, за да се постигне целта:

SELECT FLOOR(10000 + RAND() * 89999) AS random_number
FROM table
WHERE random_number NOT IN (SELECT unique_id FROM table)
LIMIT 1

Просто казано, той генерира N произволни числа, където N е броят на редовете в таблицата, филтрира тези, които вече присъстват в таблицата, и ограничава оставащия набор до едно.

Може да е малко бавно на големи маси. За да ускорите нещата, можете да създадете изглед от тези уникални идентификатори и да го използвате вместо вложен оператор select.

РЕДАКТИРАНЕ:премахнати кавички



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL Вмъкване и присъединяване

  2. Колко сигурно е удостоверяването в mysql протокол?

  3. Създайте временна таблица в MySQL с индекс от избран

  4. Втора заявка SELECT, ако първата SELECT връща 0 реда

  5. Фатална грешка:Максималното време за изпълнение от 30 секунди е превишено в C: