NBS Posted December 29, 2010 Report Share Posted December 29, 2010 Sveiki, man ir šāda tabula: 1 | janis | šmits 2 | juris | kāpostiņš 3 | ivars | menca 4 | kārlis | alnis Kā, lai es ieinsertoju vai atlasu, piemēram, šādi: 1 | janis | šmits 2 | juris | kāpostiņš NULL | Vārds | NULL 3 | ivars | menca 4 | kārlis | alnis Paldies jau savlaicīgi. Quote Link to comment Share on other sites More sharing options...
Gangans Posted December 29, 2010 Report Share Posted December 29, 2010 Ja runa ir par MySQL, tad : http://www.tizag.com/mysqlTutorial/mysqlinsert.php Quote Link to comment Share on other sites More sharing options...
NBS Posted December 29, 2010 Author Report Share Posted December 29, 2010 Nav svarīgi vai MySQL vai SQL. Bet man vajag insert starp tām rindām. Neviss beigās. Quote Link to comment Share on other sites More sharing options...
Gints Plivna Posted December 29, 2010 Report Share Posted December 29, 2010 (edited) Parastām tabulām nav tāda jēdziena pievienot pa vidu, beigās vai sākumā. Tabulas dati glabājas bāzē kā nu sanāk DBVS tur viņus novietot un pilnīgi nedeterminēti. Tiem NAV NEKĀDAS PREDEFINĒTAS kārtības. Kārtību var iegūt datus atlasot izmantojot ORDER BY klauzu. Visādi citādi arī datu atlasē NEKĀDA KĀRTĪBA NETIEK GARANTĒTA. Šai konkrētā gadījumā mākslīgi protams varētu šādu ierakstu pievienot, bet tas viss izskatās ļoti aizdomīgi - piemēram pirmā kolona izskatās pēc identifikatora, kas parasti normālā gadījumā vienmēr ir aizpildīts, līdz ar to kāpēc tas lai būtu NULL? Labāk paskaidro ko Tev patiešām vajag un kāpēc šādi, iespējams, ka ir citi labāki risinājumi. Gints Plivna http://datubazes.wordpress.com Edited December 29, 2010 by Gints Plivna Quote Link to comment Share on other sites More sharing options...
NBS Posted December 29, 2010 Author Report Share Posted December 29, 2010 Nu jā, ir identity uz ID lauku, bet to jau var slēgt. Man ir šādi dati: 1 | "Mežvidi", Bārbeles pag., Vecumnieku nov., LV-3905 | 5 2 | "Krieviņi", Bārbeles pag., Vecumnieku nov., LV-3905 | 6 3 | "Dzērvēni", Bārbeles pag., Vecumnieku nov., LV-3905 | 2 4 | "Mūrnieki", Bārbeles pag., Vecumnieku nov., LV-3905 | 2 5 | "Zvēri", Bārbeles pag., Vecumnieku nov., LV-3905 | 4 6 | Pionieru iela 6, Bauska, Bauskas nov., LV-3901 | 3 7 | Zemgaļu iela 27, Bauska, Bauskas nov., LV-3901 | 4 8 | Bērzu iela 9, Bauska, Bauskas nov., LV-3901 | 6 9 | Dārza iela 38, Bauska, Bauskas nov., LV-3901 | 2 10 | Liepu iela 6, Bauska, Bauskas nov., LV-3901 | 1 Vajag rezultātā iegūt šādus datus: NULL | Bārbeles pagasts | NULL 1 | "Mežvidi", Bārbeles pag., Vecumnieku nov., LV-3905 | 5 2 | "Krieviņi", Bārbeles pag., Vecumnieku nov., LV-3905 | 6 3 | "Dzērvēni", Bārbeles pag., Vecumnieku nov., LV-3905 | 2 4 | "Mūrnieki", Bārbeles pag., Vecumnieku nov., LV-3905 | 2 5 | "Zvēri", Bārbeles pag., Vecumnieku nov., LV-3905 | 4 NULL | Bauska | NULL 6 | Pionieru iela 6, Bauska, Bauskas nov., LV-3901 | 3 7 | Zemgaļu iela 27, Bauska, Bauskas nov., LV-3901 | 4 8 | Bērzu iela 9, Bauska, Bauskas nov., LV-3901 | 6 9 | Dārza iela 38, Bauska, Bauskas nov., LV-3901 | 2 10 | Liepu iela 6, Bauska, Bauskas nov., LV-3901 | 1 Quote Link to comment Share on other sites More sharing options...
Gints Plivna Posted December 29, 2010 Report Share Posted December 29, 2010 Nu paga, bet tas taču ir tikai kaut kāds viens attēlošanas veids, kur acīmredzot datus attēlo grupētus pa pagastu/pilsētu? Vai, piedod par izteicienu, Tu tiešām vēlies "izdrāzt datus", lai tiktu galā tikai ar šo vienu reizi, kad Tev šos datus vajag attēlot tieši šādi? Tātad 1kārt šeit būtu jādomā nevis par datu pievienošanu, bet par to kā tos attēlot grupētus vajadzīgajā veidā. 2kārt uz šo brīdi izskatās, ka kārtošana notiek pēc idiem, bet vai tiešām mūžīgi būs tā, ka visi ieraksti jau pēc IDIEM būs grupēti pēc tā pagasta/pilsētās? T.i., kas notiks, ja tālāk ievadīs ierakstu ar id = 11, kuram adrese atkal būs tas bārbeles pagasts? 3kārt cik uzticami ir tas, ka adreses tiek vienmēr pierakstītas šādā formā, ka no otrā līdz trešajam komatam ir tā reālā teksta daļa pēc kuras vajag grupēt? Gints Plivna http://datubazes.wordpress.com Quote Link to comment Share on other sites More sharing options...
NBS Posted December 29, 2010 Author Report Share Posted December 29, 2010 Jā, man tikai šoreizi vajag tos datus tā attēlot. Tur nekas nemainīsies un dati netiks pievienoti klāt. Pašlaik nekas netiek grupēts vienkārši izvadīts rezultāts. Pats īsti nesaprotu kā šo visu var dabūt gatavu tpc arī forumā rakstu. Quote Link to comment Share on other sites More sharing options...
NBS Posted December 29, 2010 Author Report Share Posted December 29, 2010 Atradu citu veidu kā atrisināt šo problēmu. Quote Link to comment Share on other sites More sharing options...
Gints Plivna Posted December 29, 2010 Report Share Posted December 29, 2010 (edited) Nu nenormāli šaubīgi tas viss izskatās, apmēram tikpat šaubīgi kā šis selekts :) mysql> desc qwe -> ; +--------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------+--------------+------+-----+---------+-------+ | id | int(11) | YES | | NULL | | | adrese | varchar(100) | YES | | NULL | | | col1 | int(11) | YES | | NULL | | +--------+--------------+------+-----+---------+-------+ 3 rows in set (0.03 sec) mysql> select * from qwe; +------+-----------------------------------------------------+------+ | id | adrese | col1 | +------+-----------------------------------------------------+------+ | 1 | "Mezvidi", Barbeles pag., Vecumnieku nov., LV-3905 | 5 | | 2 | "Krievini", Barbeles pag., Vecumnieku nov., LV-3905 | 6 | | 6 | Pionieru iela 6, Bauska, Bauskas nov., LV-3901 | 3 | +------+-----------------------------------------------------+------+ 3 rows in set (0.00 sec) mysql> select id, ifnull(adrese, p), col1 -> from ( -> select id, adrese, p, col1 -> from ( -> select id, adrese, col1, -> substring_index(substring_index(adrese, ',', 2), ',', -1) as p -> from qwe) as q -> group by p, id, adrese, col1 with rollup -> ) as q1 -> where id IS NOT NULL AND adrese IS NOT NULL AND col1 IS NOT NULL -> or id IS NULL AND adrese IS NULL AND col1 IS NULL AND p IS NOT NULL -> ORDER BY p, id; +------+-----------------------------------------------------+------+ | id | ifnull(adrese, p) | col1 | +------+-----------------------------------------------------+------+ | NULL | Barbeles pag. | NULL | | 1 | "Mezvidi", Barbeles pag., Vecumnieku nov., LV-3905 | 5 | | 2 | "Krievini", Barbeles pag., Vecumnieku nov., LV-3905 | 6 | | NULL | Bauska | NULL | | 6 | Pionieru iela 6, Bauska, Bauskas nov., LV-3901 | 3 | +------+-----------------------------------------------------+------+ 5 rows in set (0.00 sec) Gints Plivna http://datubazes.wordpress.com Edited December 29, 2010 by Gints Plivna Quote Link to comment Share on other sites More sharing options...
NBS Posted December 30, 2010 Author Report Share Posted December 30, 2010 Jā, šitas variants pat labāks nekā manējais. Paldies :) 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.