Portál AbcLinuxu, 12. května 2025 04:14

Dotaz: mysql a podminka

28.4.2011 18:51 Jirka
mysql a podminka
Přečteno: 196×
Odpovědět | Admin
Ahoj,

poradíl by někdo, jak mám napsat where v sql dotatazu aby se rovnalo jedné z hodnoty uložené v mysql ?

Mám požadované číslo 100

a v mysql mám sloupec ve kterém mám čísla oddělené čárkama "20,100,98"

a potřebuji načíst ty řádky které obsahuji číslo 100

Díky

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

28.4.2011 18:59 lmojzis
Rozbalit Rozbalit vše Re: mysql a podminka
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nejsem si jist ale zkus toto: SELECT * FROM tabulka WHERE sloupec-s-cisly LIKE '%100%'
28.4.2011 19:04 Ragzid | skóre: 24 | blog: Pivní koutek | Liberec-Brno
Rozbalit Rozbalit vše Re: mysql a podminka
Mozna bych to upravil na tohle: SELECT * FROM tabulka WHERE sloupec-s-cisly LIKE '%,100,%', aby to nevzalo v potaz cisla jako 31005
28.4.2011 19:13 Jirka
Rozbalit Rozbalit vše Re: mysql a podminka
Mozna bych to upravil na tohle: SELECT * FROM tabulka WHERE sloupec-s-cisly LIKE '%,100,%', aby to nevzalo v potaz cisla jako 31005
No jo, ale jak to pak bude hledat treba čísla 20 nebo 98 které jsou nakraji nebo na konci? tam carky nejsou..
28.4.2011 19:31 lmojzis
Rozbalit Rozbalit vše Re: mysql a podminka
OP se ptal na to, kde se vyskytuje 100, tedy '%100%' a nic jiného... :)

Pokud by to mělo bejt jen to 100 jako celej řetězec, muselo by se to udělat jako SELECT * FROM tabulka WHERE sloupec-s-cisly LIKE '100,%' OR sloupec-s-cisly LIKE '%,100' OR sloupec-s-cisly='100'
Řešení 1× (lmojzis)
28.4.2011 20:02 lmojzis
Rozbalit Rozbalit vše Re: mysql a podminka
Možné řešení je tedy:
SELECT * FROM tabulka WHERE sloupec-s-cisly LIKE '100,%' OR sloupec-s-cisly LIKE '%,100' OR sloupec-s-cisly LIKE '%,100,%' OR sloupec-s-cisly='100'
28.4.2011 20:15 12345 | skóre: 41 | blog:
Rozbalit Rozbalit vše Re: mysql a podminka
Odpovědět | | Sbalit | Link | Blokovat | Admin
Především bych se zamyslel, jak je možné, že mám v jednom sloupci více čísel nacpaných do stringu. To zavání pochybným návrhem tabulky. Výše zmíněná řešení s LIKE jistě budou fungovat, ale systémovým řešením je tabulku normalizovat a čísla umístit do separátních sloupců, případně do řádků zvláštní tabulky, pokud jejich počet není pevný.
28.4.2011 20:36 lmojzis
Rozbalit Rozbalit vše Re: mysql a podminka
Samozřejmě máš pravdu :)
28.4.2011 21:17 Jirka
Rozbalit Rozbalit vše Re: mysql a podminka
Co jsou to separatni sloupce?
28.4.2011 23:16 12345 | skóre: 41 | blog:
Rozbalit Rozbalit vše Re: mysql a podminka
Prostě samostatné sloupce. Pokud vím, že ta čísla budou vždy tři, tak si na ně vytvořím tři sloupce typu INTEGER místo jednoho sloupce typu VARCHAR. Pokud nevím, kolik jich bude, vytvořím si na ně speciální tabulku, kde každé číslo dostane svůj řádek, který se záznamem v původní tabulce bude spojen foreign key vazbou. Opravdu doporučuji nastudovat alespoň základy normalizace databází, ušetříš mnohé bolení hlavy sobě i těm, kteří po tobě budou kód spravovat :-)
28.4.2011 23:17 lmojzis
Rozbalit Rozbalit vše Re: mysql a podminka
Asi myslel aby byla data rozložena do sloupců, nicméně toto takto nevidím... Vidím to na více řádek, které nebudou takto:

1,2,3 - blah blah - něco dalšího

ale takto:

1 - blah blah - něco dalšího
2 - blah blah - něco dalšího
3 - blah blah - něco dalšího

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.