Size: a a a

2020 June 11

IZ

Ilia Zviagin in MySQL
Dev ☣️
А решений как всегда каих-то внутри нет? Опять костыли с циклами для проверки id каждой строки делать, да?
Зачем тебе ID проверять, расскажи...
А то утро-то хмурое, надо повеселиться...
источник

D

Dev ☣️ in MySQL
Ilia Zviagin
Зачем тебе ID проверять, расскажи...
А то утро-то хмурое, надо повеселиться...
Потому что я вывожу строки по id

Мне нужно чтоб вместо удаленной строки с id 2 между 1 и 3 строкой вставлялась новая с таким же айди (то есть 2)

Как это реализовать? Сейчас вместо удаленной с id 2 ставится новая строка между 1 и 3 но с id 4
источник

D

Dev ☣️ in MySQL
Оценим умы шарящих не идиотов.
источник

DE

Denis Efremov in MySQL
Dev ☣️
Потому что я вывожу строки по id

Мне нужно чтоб вместо удаленной строки с id 2 между 1 и 3 строкой вставлялась новая с таким же айди (то есть 2)

Как это реализовать? Сейчас вместо удаленной с id 2 ставится новая строка между 1 и 3 но с id 4
Если подумать? Что тебе понадобится для реализации автоинкремента?
источник

IZ

Ilia Zviagin in MySQL
Dev ☣️
Потому что я вывожу строки по id

Мне нужно чтоб вместо удаленной строки с id 2 между 1 и 3 строкой вставлялась новая с таким же айди (то есть 2)

Как это реализовать? Сейчас вместо удаленной с id 2 ставится новая строка между 1 и 3 но с id 4
Мне трудно понять выводить строки по id
источник

DE

Denis Efremov in MySQL
А откуда ты узнаешь ID?
источник

IZ

Ilia Zviagin in MySQL
Dev ☣️
Потому что я вывожу строки по id

Мне нужно чтоб вместо удаленной строки с id 2 между 1 и 3 строкой вставлялась новая с таким же айди (то есть 2)

Как это реализовать? Сейчас вместо удаленной с id 2 ставится новая строка между 1 и 3 но с id 4
Id это у тебя первичный ключ в  таблице? DDL таблицы покажи
источник

D

Dev ☣️ in MySQL
Denis Efremov
Если подумать? Что тебе понадобится для реализации автоинкремента?
Смотри. Это запрос с которым я создаю таблицу

CREATE TABLE IF NOT EXISTS users (
 id int(11) NOT NULL AUTO_INCREMENT,
 login varchar(20) NOT NULL,
 email varchar(50) NOT NULL,
 password varchar(35) NOT NULL,
 PRIMARY KEY (id)
);

При добавлении новой строки  id не указываю, ибо он у меня вставляется автоматически по порядку. 1, 2. 3. 4..

Но, бывает такое, что мне нужно снести id 2 между 1 и 3 и потом добавлять новую. Но, новая вместо id 2 для восстановления порядка, берет id 4, но вставляется между 1 и 3

Как сделать так, чтобы она не только вставлялась между 1 и 3, но и брала id 2, чтоб восстановить порядок?
источник

IZ

Ilia Zviagin in MySQL
Dev ☣️
Потому что я вывожу строки по id

Мне нужно чтоб вместо удаленной строки с id 2 между 1 и 3 строкой вставлялась новая с таким же айди (то есть 2)

Как это реализовать? Сейчас вместо удаленной с id 2 ставится новая строка между 1 и 3 но с id 4
Ну и главное - зачем сортировать по ID? Обычно что-то полезное для пользователя для сортировки используют
источник

D

Dev ☣️ in MySQL
Ilia Zviagin
Ну и главное - зачем сортировать по ID? Обычно что-то полезное для пользователя для сортировки используют
Я просто вывожу рандомно картинки с помощью id методом генерации случайных чисел и всё. Там как раз с помощью айди и удобнее всего
источник

IZ

Ilia Zviagin in MySQL
Dev ☣️
Смотри. Это запрос с которым я создаю таблицу

CREATE TABLE IF NOT EXISTS users (
 id int(11) NOT NULL AUTO_INCREMENT,
 login varchar(20) NOT NULL,
 email varchar(50) NOT NULL,
 password varchar(35) NOT NULL,
 PRIMARY KEY (id)
);

При добавлении новой строки  id не указываю, ибо он у меня вставляется автоматически по порядку. 1, 2. 3. 4..

Но, бывает такое, что мне нужно снести id 2 между 1 и 3 и потом добавлять новую. Но, новая вместо id 2 для восстановления порядка, берет id 4, но вставляется между 1 и 3

Как сделать так, чтобы она не только вставлялась между 1 и 3, но и брала id 2, чтоб восстановить порядок?
Зачем такое нужно вообще?
источник

IZ

Ilia Zviagin in MySQL
Dev ☣️
Я просто вывожу рандомно картинки с помощью id методом генерации случайных чисел и всё. Там как раз с помощью айди и удобнее всего
Ну, выводи, зачем для этого сортировка и вставка в центр?
источник

D

Dev ☣️ in MySQL
Ilia Zviagin
Ну, выводи, зачем для этого сортировка и вставка в центр?
Так я хочу чтоб порядок был восстановлен и было не 1, 4, 3, а 1, 2, 3
источник

НА

Николай Алиферов... in MySQL
А чего рандомно?
источник

DE

Denis Efremov in MySQL
Dev ☣️
Смотри. Это запрос с которым я создаю таблицу

CREATE TABLE IF NOT EXISTS users (
 id int(11) NOT NULL AUTO_INCREMENT,
 login varchar(20) NOT NULL,
 email varchar(50) NOT NULL,
 password varchar(35) NOT NULL,
 PRIMARY KEY (id)
);

При добавлении новой строки  id не указываю, ибо он у меня вставляется автоматически по порядку. 1, 2. 3. 4..

Но, бывает такое, что мне нужно снести id 2 между 1 и 3 и потом добавлять новую. Но, новая вместо id 2 для восстановления порядка, берет id 4, но вставляется между 1 и 3

Как сделать так, чтобы она не только вставлялась между 1 и 3, но и брала id 2, чтоб восстановить порядок?
Давай предположим что у тебя есть листок бумаги и ты на нем записываешь строки и у каждой строки есть номер. Тебе надо знать какое число ставить следующим а для этого надо ещё один лист и там записываем номер.

Так вот это реализация как сейчас. А чтобы сделать как ты говоришь, надо хранить ряд чисел произвольной длины
источник

DE

Denis Efremov in MySQL
Dev ☣️
Так я хочу чтоб порядок был восстановлен и было не 1, 4, 3, а 1, 2, 3
Ну задай порядок
источник

IZ

Ilia Zviagin in MySQL
Dev ☣️
Я просто вывожу рандомно картинки с помощью id методом генерации случайных чисел и всё. Там как раз с помощью айди и удобнее всего
Короче.
Если в таблице ты используешь суррогатный ключ, то он используется только для одной цели - идентификации записи. Для других целей его использовать нельзя. Нужно тебе ещё какие то поля - создай отдельно от PK и используй как угодно
источник

DE

Denis Efremov in MySQL
Данные в БД по умолчанию несортированны
источник

IZ

Ilia Zviagin in MySQL
Dev ☣️
Так я хочу чтоб порядок был восстановлен и было не 1, 4, 3, а 1, 2, 3
Для выбора картинок это не нужно
источник

D

Dev ☣️ in MySQL
Теперь стало яснее. Я понял. Спасибо!

Так и быть, сделаю отдельное поле и задам порядок самостоятельно.
источник