Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / генерация уникальных значений в SELECT / 12 сообщений из 12, страница 1 из 1
04.11.2016, 17:07
    #39341513
kristoferR
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
генерация уникальных значений в SELECT
здравствуйте
встал следующий вопрос:
как в SELECT сгенерировать уникальные значения одного поля или автоинкремент

пока сделал так:
SELECT GREATEST(1,ROUND((RAND())*9999999)) AS id, table1.field2 FROM ...

но желательно чтобы они были с автоприростом, так как в моей конструкции можно натолкнуться на повтор

спасибо
...
Рейтинг: 0 / 0
04.11.2016, 17:38
    #39341530
retvizan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
генерация уникальных значений в SELECT
kristoferR,

1. http://www.sql.ru/forum/684431/faq-numeraciya-strok-i-drugie-voprosy-pro-ispolzovanie-peremennyh

2. https://mariadb.com/kb/en/mariadb/sequence/

3. в последних версиях (ещё не GA) с помощью рекурсивных ОТВ
...
Рейтинг: 0 / 0
04.11.2016, 18:12
    #39341545
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
генерация уникальных значений в SELECT
kristoferRздравствуйте
встал следующий вопрос:
как в SELECT сгенерировать уникальные значения одного поля или автоинкремент

пока сделал так:
SELECT GREATEST(1,ROUND((RAND())*9999999)) AS id, table1.field2 FROM ...

но желательно чтобы они были с автоприростом, так как в моей конструкции можно натолкнуться на повтор

спасибо

UUID() чем не подходит?
...
Рейтинг: 0 / 0
04.11.2016, 20:41
    #39341612
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
генерация уникальных значений в SELECT
kristoferR,

table1.id тоже не годится?

Зачем вообще эта нумерация?
...
Рейтинг: 0 / 0
04.11.2016, 22:47
    #39341654
kristoferR
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
генерация уникальных значений в SELECT
retvizan
SET не подходит
SELECT @i := @i + 1 AS ... тоже пробовал, но не подходит,
искал другое решение, но как видно нет

miksoft
если задаю вопрос, значит table1.id не подходит
зачем нужна? просто есть один зверь, на которого я повлиять не могу, но могу кормить его своими запросами из текстового файла
и получив мой запрос, он в итоге делает GROUP BY table1.id, вот потому мне и нужны уникальные id
надеюсь понятно пояснил

буду копать
...
Рейтинг: 0 / 0
04.11.2016, 22:53
    #39341656
kristoferR
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
генерация уникальных значений в SELECT
alex564657498765453
увы, мне нужен int id
...
Рейтинг: 0 / 0
04.11.2016, 23:07
    #39341661
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
генерация уникальных значений в SELECT
kristoferRSELECT @i := @i + 1 AS ... тоже пробовал, но не подходит,А это почему не подходит?
...
Рейтинг: 0 / 0
05.11.2016, 00:00
    #39341685
kristoferR
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
генерация уникальных значений в SELECT
Akina, почему не подходит:
1. забыл указать, что это должен быть один запрос, т.е. никаких SET, прошу прощения за невнимательность при создании вопроса
2. попробуйте эту конструкцию без предварительного SET @unival = 0; и на выходе получим сплошные null, а это меня расстраивает, так как на выходе я должен получить int id

я сейчас попробую придумать шаманство с UUID, как вариант выдрать все цифири, прибавить непонятно что, удалить, умножить, и вуаля (авось...)
...
Рейтинг: 0 / 0
05.11.2016, 00:29
    #39341695
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
генерация уникальных значений в SELECT
kristoferRSET не подходитЕго можно убрать внутрь основного SELECT-а. В первой ссылке выше первый же пример.
...
Рейтинг: 0 / 0
05.11.2016, 00:30
    #39341698
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
генерация уникальных значений в SELECT
kristoferRя сейчас попробую придумать шаманство с UUID, как вариант выдрать все цифири, прибавить непонятно что, удалить, умножить, и вуаля (авось...)Цифр там будет переменное количество и не факт, что достаточное.
...
Рейтинг: 0 / 0
08.11.2016, 08:35
    #39343093
kristoferR
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
генерация уникальных значений в SELECT
miksoft, да один из вариантов прошел
а именно:
SELECT (@uv := @uv + 1) AS id, ...
FROM ...
INNER JOIN (SELECT @uv : =0)
...

прекрасный пример, всем спасибо, тема закрыта
...
Рейтинг: 0 / 0
08.11.2016, 10:42
    #39343195
kristoferR
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
генерация уникальных значений в SELECT
кстати, такой вариант, тож ничего:
TRIM(LEADING '0' FROM (TRIM(LEADING '0.' FROM RAND()))) AS id
примитивен, но работает
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / генерация уникальных значений в SELECT / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]