2010-01-30 63 views
1

我有一张桌子,我希望更新某个栏位的值。(SQL)是否可以使用上一行中字段的值更新字段值?

基本上移动一个值,它下面的值应该继承关于它们的值。

我不知道这个动作是否可以使用单个SQL查询。

我的表:

CREATE TABLE `menu` (
    `slot_index` int(2) NOT NULL, 
    `language_ID` int(2) NOT NULL, 
    `menuItem` text NOT NULL, 
    PRIMARY KEY (`slot_index`,`language_ID`), 
    KEY `language_ID` (`language_ID`) 
) 

在它的内容:

INSERT INTO `menu` (`slot_index`, `language_ID`, `menuItem`) VALUES 
(1, 1, 'Home'), 
(2, 1, 'Wie zijn wij'), 
(21, 1, 'Missie'), 
(22, 1, 'Doelen'), 
(23, 1, 'Visie'), 
(24, 1, 'Test'), 
(3, 1, 'Wat doen wij'), 
(31, 1, 'Medische kaart voor op reis'), 
(32, 1, 'Huisartsenkaart'), 
(33, 1, 'Huisartsenkaart anderstaligen'), 
(4, 1, 'Perskamer'), 
(5, 1, 'Beheer'), 
(6, 1, 'FAQ'), 
(7, 1, 'Ervaringen'), 
(8, 1, 'Contact'), 
(81, 1, 'Disclaimer'), 
(9, 1, 'Links'), 
(91, 1, 'Adresgegevens') 

我想移动slot_index 5〜9,使场下往上移动,继承来自上面的字段的值。

这可能与一个单一的查询,或者我应该只是写一个脚本?

在此先感谢。

Wolfert

+2

如果您觉得需要更改主键的值,那么该字段可能不应该是主键的一部分。 – 2010-01-30 23:25:19

+0

另外,你有没有想过如何为该排序顺序编写ORDER BY子句?你不能只使用ORDER BY slot_id。你怎么解决这个问题的?当菜单中有9个以上的项目时会发生什么? – 2010-01-30 23:30:46

+0

我还建议你阅读这个页面在MySQL中存储heirarchical数据:http://dev.mysql.com/tech-resources/articles/hierarchical-data.html – 2010-01-30 23:32:28

回答

1

也许使用自动增量将有助于未来的使用。

至于目前的我怀疑这可以与单一查询,因为你不能查询你想要更新的表。

+0

感谢您的回复,但自动增量无法选择,因为我需要将每个数字作为主要插槽,而每个第二位数字应指示子插槽。 – Wolfert 2010-01-30 23:43:19

相关问题