Portál AbcLinuxu, 12. května 2025 16:35

Dotaz: vyhledávání v mysql a pid

31.1.2010 00:11 Lister169126 | skóre: 2
vyhledávání v mysql a pid
Přečteno: 356×
Odpovědět | Admin
Zdravim, necitim se jako zacatecnik v teto oblasti, ale toto se mi jeste nestalo, pracoval jsem s X databazema, ale s timto jsem se nesetkal...

struktura jednoducha, klasicky pavouk na seznam mest:

id(primary) pid nazev
1           0   Praha
2           1   Praha mesto

Myslim ze z toho jasne chapete, jak cela tabulka vypada.

co je uzasne, tak kdyz napisu select where nazev = 'Praha', najde v pohode, ale kdyz zadam where nazev = 'Praha mesto' nenajde nic (dela to i u mest bez mezery). Testoval jsem to jak jsem mohl, zkousel jsem =, like a vysledek stejny. Prahu mesto najde pouze, kdyz na konec dam % (a like samozrejme), ale to v me situaci pouzit nemuzu. Neni to zadnyma specialnima znakama na konci.

tresnicka na konec: kdyz dam u prahy mesto pid na 0, tak to jede...

Ř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

31.1.2010 00:15 Lister169126 | skóre: 2
Rozbalit Rozbalit vše Re: vyhledávání v mysql a pid
Odpovědět | | Sbalit | Link | Blokovat | Admin
tak, pri psani jsem na to prisel, chyba je v nazvu sloupce pid, nevim proc ale neco to s databazi dela a zpusobuje to tuto chybu, nevi nekdo proc? ciste ze zajimavosti

oprava struktury db:

insert into ...(id,pid,nazev) values('1', '0', 'Praha'),('2', '1', 'Praha mesto')

z toho si to domyslite, id je primary
1.2.2010 09:55 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: vyhledávání v mysql a pid
Tou opravou struktury DB myslíte to, že jste v dotazu nedal výpis tabulky do tagu <pre> a nebylo to čitelné? Dotaz jsme upravil.

Že by byla chyba v názvu sloupce pid se mi moc nezdá, vždyť ten sloupec je pro oba dotazy stejný.
CREATE TABLE test (
  id INT PRIMARY KEY NOT NULL,
  pid INT,
  nazev VARCHAR(255)
)

insert into test (id,pid,nazev) values('1', '0', 'Praha'),('2', '1', 'Praha mesto') ;

SELECT * FROM test WHERE nazev = 'Praha';
SELECT * FROM test WHERE nazev = 'Praha mesto';
Zkusil jsem předchozí sekvenci, a oba SELECTy vrátily očekávané výsledky (příslušný řádek z tabulky). Testováno na MySQL verze 5.0.51.
2.2.2010 01:00 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: vyhledávání v mysql a pid
S pid to asi nesouvisí, to se mi také moc nezdá…
Je tam opravdu mezera v obou případech (tzn. v DB i v tom select-ovacím dotazu) ?
A pokud ano je tam opravdu jen 1× ?
Co to udělá takto ?
SELECT * FROM t1 WHERE nazev LIKE 'Praha%m_sto%'
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
2.2.2010 17:52 Lister169126 | skóre: 2
Rozbalit Rozbalit vše Re: vyhledávání v mysql a pid
je to presne ono, hazel jsem to tam z csv a evidentne je toho vic nez phpmyadmin a var_dump ukazuje, pri exportu to haze na konci /n, takze to je presne ten problem.

Diky moc, toto je presne ta situace kdy neni idealni testovat pres php :D

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.