Turecky Posted November 27, 2009 Report Share Posted November 27, 2009 Sveiki, ceru, ka kāds varēs šo lietiņu izskaidrot vai arī apgaismot, kā to pareizāk izdarīt. Lieta sekojoša, kā pareizāk izveidot index lapas uzstādījumu? Tabula: id title content index_page Ja kolonā index_pagesaliekam, piemēram, visas 0 tad index_page nav neviena, tāpēc vienkārši varam norādīt kura būs index_page, kādam no ierakstiem index_page nomainot uz 1. Situācijā, kad gribu mainīt index_page un piesaistīt to citam ierakstam, tad būtu nepieciešams vai nu vispirms atrast ierakstu, kam index_page ir 1 nomainīt to uz 0 un tad vēlamajam ierakstam uzlikt index_page 1. Vai varbūt to var darīt tā, ka vispirms pārrakstam visus index_page uz 0 un tad vēlamajam ierakstam index_page ieliekam 1. Otrajā gadījumā pieprasījums pie lielākiem apjomiem noteikti būtu ilgāks, bet lieli apjomi nav paredzēti. Un tātad galvenais jautājums, vai iespējams to visu salikt vienā pieprasījumā. Tā kā MySQL guru neesmu, tad varbūt ieteiksiet kādu risinājumu, jo neko labāku par diviem pieprasījumiem izdomāt nevarēju. Cerams, ka sapratāt ideju. Paldies par atbildēm, ja tādas būs! Quote Link to comment Share on other sites More sharing options...
Gints Plivna Posted November 27, 2009 Report Share Posted November 27, 2009 Neliela matemātika. Pieņemu, ka zini gan esošās index lapas id, gan jaunās index lapas id mysql> create table blahh (id int not null primary key, is_index int); Query OK, 0 rows affected (0.09 sec) mysql> insert into blahh values (1, 0), (2, 1), (3, 0); Query OK, 3 rows affected (0.05 sec) Records: 3 Duplicates: 0 Warnings: 0 mysql> select * from blahh; +----+----------+ | id | is_index | +----+----------+ | 1 | 0 | | 2 | 1 | | 3 | 0 | +----+----------+ 3 rows in set (0.00 sec) Tagad pirmajai lapai vajag uzlikt uz 1, otrajai uz nulle mysql> update blahh set is_index = abs(is_index - 1) -> where id in (1, 2); Query OK, 2 rows affected (0.05 sec) Rows matched: 2 Changed: 2 Warnings: 0 mysql> select * from blahh; +----+----------+ | id | is_index | +----+----------+ | 1 | 1 | | 2 | 0 | | 3 | 0 | +----+----------+ 3 rows in set (0.00 sec) Pieņemu, ka šis ne tuvu nav vienīgais risinājums. Gints Plivna http://datubazes.wordpress.com/ Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.