Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Jednostavno selektovati redove sa BAR NEKOM od datih vrednosti?

[es] :: MySQL :: Jednostavno selektovati redove sa BAR NEKOM od datih vrednosti?

[ Pregleda: 2725 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

zgas

Član broj: 74613
Poruke: 334
213.137.123.*

Sajt: odbrojavanje.com


Profil

icon Jednostavno selektovati redove sa BAR NEKOM od datih vrednosti?25.08.2007. u 09:41 - pre 202 meseci
Kako da napravim WHERE deo upita koji ce da selektuje redove u kojima postoji BAR NEKA od vrednosti?

Imam SET polje koje moze da sadrzi definisane vrednosti ('a','1','b','2').

Hocu da selektujem samo one redove koji sadrze BAR NEKU od sledecih vrednosti (npr. 'a' i 'b')

Znaci tu dolaze u obzir npr. redovi cije je SET polje popunjeno sa: 'a' ili 'b' ili 'a,b' ALI I 'a,1' ili 'b,2' ili 'a,1,b,2'

Ali ne dolaze u obzir polja popunjena kao '1' ili '2' ili '1,2'


Da li postoje neki jednostavan nacin za ovu namenu gde necu morati praviti komplikacije sa puno AND navoda za svaku kombinaciju...
Mozda mora da se koristi IF funkcija i neka text funkcija... (Jos sam na verziji 4 Mysql-a. Nemam verziju 5.)

Imate li predlog i primer?

Hvala.
Aukcije, www.Odbrojavanje.com
Aukcija može biti osvojena jeftino - za 30 sekundi a 6 dinara!
 
Odgovor na temu

chachka
Srđan Mijatov
Programer
BUS Computers
Kikinda

Član broj: 53780
Poruke: 576
*.ADSL.neobee.net.

Sajt: www.baze-podataka.net


+4 Profil

icon Re: Jednostavno selektovati redove sa BAR NEKOM od datih vrednosti?25.08.2007. u 10:14 - pre 202 meseci
Kolonu (a ne polje) si nazvao 'SET' i dodelio si joj vrednost tipa VARCHAR.

SET se sa engleskog prevodi kao SKUP. Skup se u relacionom modelu (pa i u SQL-u) predstavlja tabelom, a ne kolonom tipa VARCHAR.

Jablan je juče dao savet na sličan problem u ovoj temi, citiram: "Redizajniraj bazu."

Ako to ne uradiš, imaćeš sve više i više sličnih problema.
"The best code is no code at all."
- Zidar (ES član)
"Biggest obstacle to learning
SQL is unlearning procedural
programming."
- Joe
Celko
"Minimize code, maximize data."
- A. Neil Pappalardo
 
Odgovor na temu

zgas

Član broj: 74613
Poruke: 334
213.137.123.*

Sajt: odbrojavanje.com


Profil

icon Re: Jednostavno selektovati redove sa BAR NEKOM od datih vrednosti?25.08.2007. u 10:56 - pre 202 meseci
Ne - Nesporazum.
Ja sam konkretnu KOLONU o kojoj govorim nazvao sa 'tip_izdanja' i dao sam joj vrednost tipa SET.
To sam samo parafrazirao kada sam rekao da imam SET polje.

Ne znam da li je to neka prepreka i problem za resavanje mog pitanja?
Aukcije, www.Odbrojavanje.com
Aukcija može biti osvojena jeftino - za 30 sekundi a 6 dinara!
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+711 Profil

icon Re: Jednostavno selektovati redove sa BAR NEKOM od datih vrednosti?25.08.2007. u 11:02 - pre 202 meseci
Citat:
Why You Shouldn't Use SET

The MySQL SET datatype is not commonly used for a few reasons; First, using the MySQL SET datatype limits you to 64 elements. While you could get around this by using multiple SETs, this still represents a loss of versatility. Second, you cannot include commas in your set elements, as the comma is an element separator. Third, using a set means your data is not normalized. In our above example, we are tracking a person's interests for a hypothetical dating site. In a normalized schema, there should be three tables: one for the person, one for all possible interests, and one that links a person to their particular interests. Fourth, an INDEX on a set datatype is going to refer to the set as a whole and will not be used for searching individual elements (this may or may not be a problem for certain applications).

sa http://dev.mysql.com/tech-reso...ticles/mysql-set-datatype.html

Na dnu iste stranice imaš kako se radi select nad poljima tog tipa. Ukratko, za ovo što tebi treba trebalo bi da koristiš bitwise operatore (tipa WHERE tip_izdanja & 10).

Ili (verovatno bolje rešenje) da izvučeš to polje u posebnu tabelu.

//edit: pogrešan operator

[Ovu poruku je menjao jablan dana 25.08.2007. u 12:16 GMT+1]
 
Odgovor na temu

zgas

Član broj: 74613
Poruke: 334
213.137.123.*

Sajt: odbrojavanje.com


Profil

icon Re: Jednostavno selektovati redove sa BAR NEKOM od datih vrednosti?25.08.2007. u 11:18 - pre 202 meseci
Hvala puno na pomoci,

zelim da pitam:

Ja imam dosta tabela sa po dve ili tri SET kolone. A struktura baze mi se dosta komplikuje ako te SET kolone izvucem u druge tabele. Takodje, sam PHP kod mi se komplikuje za pristup tim poljima. Mozda je tako jednostavnije izvrsiti neke operacije, ali sve sto sam naveo se dosta komplikuje.

Sta vi mislite, kako naci neku ravnostezu, i da li ipak SET treba izbegavati?
Aukcije, www.Odbrojavanje.com
Aukcija može biti osvojena jeftino - za 30 sekundi a 6 dinara!
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+711 Profil

icon Re: Jednostavno selektovati redove sa BAR NEKOM od datih vrednosti?25.08.2007. u 11:29 - pre 202 meseci
Ako te iste vrednosti koje držiš u SET poljima imaš u različitim tabelama, definitivno u novu tabelu. Pomoglo bi kada bi napisao za šta koristiš SET polja.
 
Odgovor na temu

zgas

Član broj: 74613
Poruke: 334
213.137.123.*

Sajt: odbrojavanje.com


Profil

icon Re: Jednostavno selektovati redove sa BAR NEKOM od datih vrednosti?25.08.2007. u 11:54 - pre 202 meseci
Nemam bas sve iste vrednosti u razlicitim tabelama, a ako ima onda je tu u dve ili tri. Bez obzira to mi jako komplikuje PHP skripte za pristup baze, jer koristim automatski generisanje PHP skripti za pristup, i to radi samo na jednoj tabeli. Ako su tabele povezane onda taj sistem ne moze da generise formu. Ne znam da li postoji neki generator koji moze? A meni je jako komplikovano da pisem tako mnogo php skripti za pristup. Radim to samo tamo gde moram.

Oprosti, jos ne mogu da dodjem sebi da ne mobu da koristim nekako selektovanje kolona cije SET polje sadrzi bar jednu od vrednosti. BitWISE jos uvek ne razumem ako je to resenje.

Redizajniranje baze mi pravi ogroman posao, ako nemam neki generator skripti...

Aukcije, www.Odbrojavanje.com
Aukcija može biti osvojena jeftino - za 30 sekundi a 6 dinara!
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+711 Profil

icon Re: Jednostavno selektovati redove sa BAR NEKOM od datih vrednosti?25.08.2007. u 12:03 - pre 202 meseci
Citat:
zgas: Ako su tabele povezane onda taj sistem ne moze da generise formu.

Onda ti je mnogo loš sistem. Ja u životu nisam radio sa bazom u kojoj tabele nisu povezane (ustvari, lažem, jesam jednom jako davno, ali se trudim da izbrišem taj period iz sećanja ;))
Citat:
BitWISE jos uvek ne razumem ako je to resenje.

To je jedna od osnova programiranja - SET tip podataka se zapisuje binarno, kao niz bitova (flagova). Stanje određenih flagova proveravaš tako što AND-uješ tu vrednost sa nekom tzv. "maskom", odnosno brojem u kome su postavljeni oni flagovi po kojima hoćeš da filtriraš.

http://en.wikipedia.org/wiki/Bitwise_operation
http://en.wikipedia.org/wiki/Mask_%28computing%29
 
Odgovor na temu

zgas

Član broj: 74613
Poruke: 334
213.137.123.*

Sajt: odbrojavanje.com


Profil

icon Re: Jednostavno selektovati redove sa BAR NEKOM od datih vrednosti?25.08.2007. u 12:07 - pre 202 meseci
Hvala ti.

Zapravo ja imam mnogo povezanih tabela , jedna tabela mi je povezana sa cak 15 drugih... znaci ja radim na taj nacin. Ali ako bidem uvodio jos povezivanje sa novom tabelom za svako SET polje to mi mnogo komplikuje (ne toliko samu bazu podataka) koliko php kod za pristup bazi.
Aukcije, www.Odbrojavanje.com
Aukcija može biti osvojena jeftino - za 30 sekundi a 6 dinara!
 
Odgovor na temu

[es] :: MySQL :: Jednostavno selektovati redove sa BAR NEKOM od datih vrednosti?

[ Pregleda: 2725 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.