Warsztat - Programowanie gier

Lipiec 30, 2010, 17:27:54 *
Witamy, Gość. Zaloguj się, lub zarejestruj proszę.

Zaloguj się podając nazwę użytkownika, hasło i długość sesji
Aktualności: Warsztat, Regulamin forum, #warsztat, Wiki, FAQ, NoPaste, Mapa
 
   Strona główna   Pomoc Szukaj Zaloguj się Rejestracja  
Strony: [1]
  Drukuj  
Autor Wątek: [MySql]Pobranie części rekordu  (Przeczytany 422 razy)
Ogniok
Full Member
***

wiadomości: 150


Zobacz profil WWW
« : Sierpień 27, 2009, 19:18:06 »

Witam.

Pisze aktualnie program który współpracuje z bazą danych. W owej bazie posiadam tabelę files. Znajdujące się w rekordy posiadają pole o nazwie plik który jest wielo linijkowym tekstem. Ja chciałbym pobrać tylko wybraną linijkę z tego tekstu. Jak sformułować takie zapytanie, żeby pobrać tylko drugą linię tekstu. Tabela nazywa się `files` a pole `plik`.
Zapisane

asasm
Full Member
***

wiadomości: 165


Zobacz profil
« Odpowiedz #1 : Sierpień 27, 2009, 20:39:31 »

A czym jest rozdzielona każda linijka w tym polu ? Znakiem końca linii, średnikiem czy czymś innym ? Musisz odnaleźć pierwsze wystąpienie tego znaku a potem drugie . Drugie minus pierwsze daje długość łańcucha.
Wtedy: select substr(pole,poczatek,dlugosc) from file.
EDIT
załóżmy że znakiem rozdzielającym jest średnik ';'
Składnia Oracle
select substr(pole, instr(pole,';',1,1)+1, instr(pole,';',1,2)- instr(pole,';',1,1)) from file
« Ostatnia zmiana: Sierpień 27, 2009, 20:49:17 wysłane przez asasm » Zapisane

float fKobieta ; // Kobieta zmienną jest...
jaboja
Jr. Member
**

wiadomości: 94



Zobacz profil WWW
« Odpowiedz #2 : Wrzesień 17, 2009, 01:33:10 »

W momencie gdy masz takie potrzeby oznacza to, że tabela jest źle zaprojektowana, bo dane nie powinny mieć własnej wewnętrznej struktury, tylko powinno być kilka osobnych pól (wzgl. druga tabela z relacją).
Zapisane
Strony: [1]
  Drukuj  
 
Skocz do:  

Hosting: Polska Strefa - Ogłoszenia
Powered by SMF 1.1.7 | SMF © 2006, Simple Machines LLC