Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите составить запрос :) / 8 сообщений из 8, страница 1 из 1
08.02.2017, 01:25
    #39400515
vipok72
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить запрос :)
Требуется пронумеровать одно поле в таблице отсортировав в алфавитном порядке другое поле
Для этого я нашел запрос, все отлично работает:


авторUPDATE proizv SET sort_id =(SELECT @a:= @a + 1 FROM (SELECT @a:= 0) s) ORDER BY name
sort_id - нумеруемое поле
name - поле по которому ведется сортировка
Теперь требуется обнулять счетчик @a когда значение name при прохождении в цикле стало другим нежели предыдущее значение (одинаковых значений в нем много), при этом сортировка должна остаться такой же
Помогите пожалуйста составить запрос, желательно в одну строку
...
Рейтинг: 0 / 0
08.02.2017, 05:19
    #39400550
Помогите составить запрос :)
vipok72,

Ф.А.К.
...
Рейтинг: 0 / 0
08.02.2017, 09:26
    #39400608
vipok72
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить запрос :)
Уже отличнооо)))
Только вот хотелось бы как нибудь переделать чтобы не была разовая нумерация а именно обновление было записей
...
Рейтинг: 0 / 0
08.02.2017, 10:41
    #39400673
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить запрос :)
А какая разница? построишь запрос на нумерацию, и используй его как подзапрос в запросе на обновление другой копии таблицы. Если это нужно постоянно - оформи нумерующий запрос как представление. Или вообще напиши процедуру.
...
Рейтинг: 0 / 0
08.02.2017, 11:43
    #39400719
vipok72
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить запрос :)
Дак если бы я представлял хотябы как это делается я бы уже сделал, составьте плиз
...
Рейтинг: 0 / 0
08.02.2017, 12:04
    #39400735
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить запрос :)
Ссылку дали... нумерация сделана? Теперь осталось сделать

Код: sql
1.
2.
3.
UPDATE table t1, (нумерующий запрос) t2
SET t1.sort_id = t2.num
WHERE t1.id = t2.id
...
Рейтинг: 0 / 0
08.02.2017, 12:25
    #39400758
vipok72
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить запрос :)
Ну не понимаю яяя, прошу просто дать готовое решение, вся работа стоит из-за одного запроса
...
Рейтинг: 0 / 0
08.02.2017, 16:00
    #39401039
vipok72
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить запрос :)
В общем с помощью очень хорошего фрилансера вопрос решился:
Код: php
1.
2.
3.
	mysqli_query($db,"set @rank=0");
	mysqli_query($db,"set @zz=0");
	mysqli_query($db,"update series as source inner join (select id,case when @zz<>proizv then @rank:=1 else @rank:=@rank+1 end as rank,case when @zz<>proizv then @zz:=proizv else @zz:=@zz end as c from series order by proizv,name) as q on source.id=q.id set source.sort_id = q.rank");
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите составить запрос :) / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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