T-shirt apdruka,un mazo uzlīmju taisīšana. 4
Profesionālie tulkošanas pakalpojumi. 5
Pardod: MSI GeForce RTX 2080ti gaming X TRIO Graphic Card 1
Vēlos piedāvāt darbu online. 0
OCTA termiņš 13
Ka sauc Pasaules dalu kura dzivojam 4
google 1
Taustiņu funkcijas izmainīšana 2
Torrent 1
ESET izlaiž 2017.gada produktu izdevumus 23
VIAPLAY: Video tiešsaistē skatās 70% Latvijas iedzīvotāju 21
Katrā desmitajā datorā joprojām izmanto Windows XP 2
Google tuvākajā laikā atteiksies no Chrome paplašinājuma palaidēja 2
Acer ievieš nozares pirmo ieliekto monitoru ar acu izsekošanas funkcionalitāti 4
Adobe laiž klajā ārkārtas atjauninājumu 3
Tests: Cik precīzs ir "lēta gala" velo spidometrs? 3
Leģendārie telefoni – Nokia 3310 un citi 3
Puisis iziet Super Mario spēli mazāk kā piecu minūšu laikā un labo pasaules rekordu 2
Līdz 29.jūlijam atjaunini savu Windows bez maksas! 3
Kā uzlabot televizora skaņu? 2
Programma, ar kuras palīdzību fotogrāfijas pārveidot .gif formātā 1
Aproce, kas sastāv no 25 instrumentiem 1
Trīs padomi televizora izvēlei 2
Windows 7 ēra tuvojas noslēgumam, Microsoft koncentrējas uz Windows 10 1
Lietotāji online: 81
Reģistrētie lietotāji online: 0
Viesi online: 81
Piemēram man ir tabula ar šādiem laukiem - lauks1 | lauks2 | lauks 3
Šī tabula satur šādus datus:
1 | 0 | abcd
2 | 0 | abcdefg
3 | 0 | qwert
4 | 1 | ertyu
5 | 2 | uiop
6 | 2 | poiu
Man šos datus vajadzētu dabūt šādā secībā:
1 | 0 | abcd
4 | 1 | ertyu
2 | 0 | abcdefg
5 | 2 | uiop
6 | 2 | poiu
3 | 0 | qwert
Vai ir iespējams uzrakstīt vaicājumu, kurā dati tiek sakārtoti tādā veidā? Nepieciešams, lai ieraksti, kur lauks2 satur lauks1 vērtību atrodas tieši aiz šī ieraksta.
Ja nevar, ta nevar. Uzrakstīt ko līdzīgu tavam nebūs grūti, vienkārši domāju, ka mož to var izdarīt ērtāk uzrakstot vienu selectu, bet sarežģitāku.
Paldies par to pašu.
Kāpēc tad nevar? Var ar vienu selectu. :)
Ja paskatamies, vajadzīgā secība ir:
1 | 0 | abcd
4 | 1 | ertyu
2 | 0 | abcdefg
5 | 2 | uiop
6 | 2 | poiu
3 | 0 | qwert
Apmainot dažiem laukiem lauks1 ar lauks2 vietām (nav grūti saprast, pēc kāda algoritma), iegūstam:
1 | 0 | abcd
1 | 4 | ertyu
2 | 0 | abcdefg
2 | 5 | uiop
2 | 6 | poiu
3 | 0 | qwert
Te jau ir skaidrs, kā aptuveni jāizskatās selectam ;)
Rekur ir aptuvens selects:
select lauks1, lauks2, lauks3 from (select lauks1, lauks2, lauks3 , (case when lauks2 not in (select lauks1 from tabula) then lauks1||lauks2 else lauks2||lauks1 end) as temp from tabula) order by temp;
Selects ir principā priekš Oracle (jo ar to vairāk darbojos), slinkums priekš mysql pārrakstīt, bet galvenais gribēju ideju parādīt.
Izskatās pēc nepareizas db struktūras... tad tagad nebūtu jādomā visādi kreisi vipedroni...
orāklī strādās šādi:
select
case when lauks2 < lauks1 then lauks2 else lauks1 end as order_lauks,
t.*
from tabula t
order by order_lauks, lauks1
Manuprāt, ar vienu selectu to nevar dabūt ārā.
Man ir izvēlnes skripts kurš dara tevis nosaukto lietu. Izlasi deīgo nno tā pats:
$pid_list = array($id);
// dabūnam visus parentus
while ($id)
{ // kamēr id nav 0, ...
$res = kverijs("SELECT pid FROM $kop WHERE id = {$id} limit 1");
$row = mysql_fetch_row($res);
mysql_free_result($res); // PHP5 nepatīk, ja netiek atbrīvota mysql resursu aizņemtā atmiņa.
if (!$row) { break; } // nepareizs id (ja manuāli ierakstīts URL, piemēram)
$id = $row[0];
$pid_list[] = $id;
}
$pid_list = implode(',', $pid_list);
$res = kverijs("SELECT pid, id, nosaukums_".$valoda." AS nosaukums FROM $kop WHERE go='0' AND akt='0' AND pid IN ({$pid_list}) ORDER BY $kop.kart");
global $toc;
while ( $row = mysql_fetch_assoc($res) )
{
$toc[$row['pid']][] = array('id' => $row['id'], 'nosaukums' => $row['nosaukums']);
}
mysql_free_result($res);
un
function ShowChilds ( $valoda, $pid)
//function ShowChilds ( $valoda, $pid, $level = 0 )JA VAJAG LAI ATDALĪTOS AR ATSTAPÄM
{
global $toc;
foreach ( $toc[$pid] as $elem )
{
//$indent = str_repeat(' ', $level); JA VAJAG LAI ATDALĪTOS AR ATSTAPÄM
echo "<li><a href='index.php?".$valoda."id={$elem['id']}' class='izvelne'>{$elem['nosaukums']}</a>";
//echo "<li>{$indent}<a href='index.php?".$valoda."id={$elem['id']}' class='izvelne'>{$elem['nosaukums']}</a></li>";JA VAJAG LAI ATDALĪTOS AR ATSTAPÄM
if (isset($toc[$elem['id']]))
{ echo '<ul class="izvelne">'; ShowChilds($valoda,$elem['id']); echo '</ul>';} //ShowChilds($valoda,$elem['id'], $level + 1);JA VAJAG LAI ATDALĪTOS AR ATSTAPÄM
echo '</li>';
// <li>bla</li> vai <li>bal<ul><li>bla-apaks</li></ul></li>
}
}