Это моя структура таблицы. Здесь мне нужно поменять элементы. Это означает, что тип 3 всегда приходит в паре (type 3 items are always paired
). Я только что назвал парные элементы для понимания первого 1 в паре - это мастер, а второй - под. So master of the pair should not come 5,10 and 15 positions
, если речь идет, что место мне нужно поменять следующий пункт в этом месте (neaxt деталь будет суб- она не должна рассматриваться в качестве следующего пункта)mysql swap элементы с номером строки
, например
pid 10 (comes in 10 position) i need to swap it like this
pid type name
.. .. ..
10 2 B2
11 3 E1(master)
12 3 A2(sub)
.. .. ..
Таблица
pid type pname
1 1 A
2 1 B
3 2 C
4 3 D(mater)
5 3 E(sub)
6 1 A1
7 2 B1
8 1 C1
9 2 D1
10 3 E1(master)
11 3 A2(sub)
12 2 B2
13 1 C2
14 2 D2
15 1 E3
скриншот
ДЛЯ ДАЛЬНЕЙШЕГО HELP
Я ДАТЬ ВАМ ТАБЛИЦЫ И СТРУКТУРА ДАННЫХ ИСПЫТАНИЯ, ПОЖАЛУЙСТА, ЕСЛИ У ВАС ЕСТЬ ИДЕЯ, поделитесь со мной!
Создание запроса
CREATE TABLE IF NOT EXISTS `table_swap1` (
`pid` int(11) NOT NULL AUTO_INCREMENT,
`type` int(11) NOT NULL,
`name` varchar(50) NOT NULL,
PRIMARY KEY (`pid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=17;
ВСТАВИТЬ ЗАПРОСА
INSERT INTO `table_swap1` (`pid`, `type`, `name`) VALUES
(1, 1, 'A'),(2, 1, 'B'),(3, 2, 'D'),(4, 3, 'E(master)'),
(5, 3, 'f(sub)'),(6, 1, 'A1'),(7, 2, 'B1'),(8, 1, 'C1'),
(9, 2, 'D1'),(10, 3, 'E1(master)'),(11, 3, 'A2(sub)'),(12, 2, 'B2'),
(13, 1, 'C2'),(14, 2, 'D2'), (15, 1, 'E2');
Моя работа и результат
SELECT aa.pid, (
CASE aa.pid
WHEN bb.apid
THEN bb.atype
WHEN bb.bpid
THEN bb.btype
WHEN bb.cpid
THEN bb.ctype
ELSE aa.type
END
)
TYPE , (
CASE aa.pid
WHEN bb.apid
THEN bb.aname
WHEN bb.bpid
THEN bb.bname
WHEN bb.cpid
THEN bb.cname
ELSE aa.name
END
)name
FROM (
SELECT a.pid +1 apid, a.TYPE atype, a.NAME aname,
b.pid +1 bpid, b.type btype, b.name bname,
c.pid -2 cpid, c.type ctype, c.name cname
FROM table_swap1 a, table_swap1 b, table_swap1 c
WHERE MOD(a.pid, 5) =0
AND a.pid +1 = b.pid
AND a.type =3
AND a.type = b.type
AND a.pid +2 = c.pid
)bb, table_swap1 aa
GROUP BY pid
Этот запрос сделал то, что я точно нужно ... Но в моем случае pid - это первичный ключ. поэтому я не могу получить результаты с 1 по 15 . Так что я могу сделать, это строка номер ... как я могу сделать
все виды предложений приветствуются даже решение в PHP пусть мне это возможно в MySQL или любой другой способ сделать это ..
Я не понимаю, что ваш после ... почему бы вам нужно «своп» все детали в MySQL в любом случае?Swap выводит изображение извлечения записи и вставляет его в другое место, но в mysql это бессмысленно, так как вы можете фильтровать записи и сортировать их по своему желанию. Может быть, вам лучше объяснить, что это за вас. –
Да, на самом деле я перечисляю продукты в три ряда .. Тип 1 и 2 изделия или раздельно, но парный предмет будет в одной большой коробке, в позиции 5, 10 и 15. я хотел бы поменять следующий элемент на то место ... – Gowri
UPDATE или SELECT? –