Autor | Zpráva | ||
---|---|---|---|
oogi Profil |
#1 · Zasláno: 19. 3. 2007, 18:12:19
Potřebuju vynechat delší řádky, jejichž "počátek" se shoduje s předcházejím kratším slovem.
např. mám v tabulce: sýkora sýkora koňadra sýkora parukářka sýkora modřinka pes pes dingo a chci, aby výsledkem dotazu byly řádky "sýkora" a "pes"... (v DB mám cca 1000 záznamů podobného typu) Jde to nějak ? |
||
souki Profil |
#2 · Zasláno: 19. 3. 2007, 19:10:47
přesně nevím, tak zkusím nakopnout... existují v mysql funkce pro práci s textem.. jednou z nich půjde načíst pouze text do mezery a pak použít group by
|
||
oogi Profil |
#3 · Zasláno: 20. 3. 2007, 14:12:55
souki
To jde přes regulární výrazy, ale probllém je, že já to potřebuju ještě porovnat s předcházejícími slovy, protože u některých prvků budu potřebovat aby to zobrazilo třeba první dvě slova: doplnění příkladu: Mnichov Mnichov - letiště Mnichov a přilehlé oblasti Frankfurt nad Mohanem Frankfurt nad Mohanem a jeho historické centrum Frankfurt nad Mohanem - koupaliště sever Frankfurt nad Mohanem - koupaliště jih a chci, aby výsledkem byl "Mnichov" a "Frankfurt nad Mohanem" myslím, že tento příklad vysvětluje lépe, co potřebuju - tedy vynechat záznam ve výsledku, pokud je pouze "rozšířením" záznamu již nalezeného Určitě by to šlo udělat doplněním pomlček za základní pojmy, ale mám tam příliš záznamů na to abych to předělával... |
||
tiso Profil |
#4 · Zasláno: 20. 3. 2007, 15:00:31
oogi použi systém z vyhľadávačov - vyhľadávanie presnej frázy - "Frankfurt nad Mohanem"
|
||
oogi Profil |
#5 · Zasláno: 20. 3. 2007, 15:23:18
tiso
Nevím zda jsi m správně pochopil, ale já potřebuji z daných údajů v DB, řekněme že jsou to třeba názvy článků, vybrat ty základní řetězce (Mnichov, Frankfurt nad Mohanem), které budou sloužit jako složky a v nich budou všechny články ve kterých se vyskytuje daný název kategorie (Mnichov, Frankfurt nad Mohanem). |
||
tiso Profil |
#6 · Zasláno: 20. 3. 2007, 15:31:11
oogi aha... čo naozaj (presne) v tej DB máš?
|
||
oogi Profil |
#7 · Zasláno: 20. 3. 2007, 15:40:42 · Upravil/a: oogi
Články na jednotlivá témata se liší třeba jen dodatkama, tak potřebuju z toho vysekat ty kategorie
|
||
roberta Profil |
#8 · Zasláno: 20. 3. 2007, 15:45:51 · Upravil/a: roberta
napadá ma iba urobiť SELECT (záznamy zoradené podľa počtu znakov)
a v php stránke -urobiť si pole vypísaných reťazcov (na začiatku prázdne) -a pri vypisovaní porovnávať, či sa vypisovaný reťazec nenachádza v poli vypísaných reťazcov. ak sa nenachádza, tak ho vypíšeš a pridáš do poľa vypísaných reťazcov, ak sa nachádza prejdeš na ďalší záznam inak mysql je relačná DB, tak prečo si neurobíš jednu tabuľku "mesta", druhú tabuľku "casti_miest" ? potom by si iba vypísal tabuľku "mesta" a nemal by si takéto problémy... |
||
oogi Profil |
#9 · Zasláno: 20. 3. 2007, 16:11:47
roberta
ASi by to šlo, ale vzhledem k tomu, že vypisuji na stránku třeba až 300 záznamů, by to mohlo citelně zpomalit načítání. Jde o to, že s každým novým místem, bych musel do tabulky mesta vkládat města, a já to potřebuji co nejvíc flexibilní. |
||
tiso Profil |
#10 · Zasláno: 20. 3. 2007, 16:30:28
oogi myslel som presný príklad pár riadkov z databázy - názvy stĺpcov a hodnoty...
|
||
oogi Profil |
#11 · Zasláno: 20. 3. 2007, 16:47:09
ID : 1
title : Mnichov odpočívadlo adresa : mnichov-odpocivadlo ID : 2 title : Mnichov adresa : mnichov ID : 3 title : Mnichov letiště adresa : mnichov-letiste ostatni sloupce nejsou dulezite... |
||
roberta Profil |
#12 · Zasláno: 20. 3. 2007, 16:54:15
Jde o to, že s každým novým místem, bych musel do tabulky mesta vkládat města, a já to potřebuji co nejvíc flexibilní.
a teraz vari nemusíš vkladať tie mestá? inak teraz to máš neflexibilné... máš úplne zle navrhnutú DB. okrem toho ti zaberá aj viac miesta, kedže sú tam duplicity. a z toho vyplynul tvoj zbytočný a podivným spôsobom riešiteľný problém. možno, kebyže si tú DB navrhneš správne, už by si mal všetko dávno hotové bez zbytočných problémov :) |
||
oogi Profil |
#13 · Zasláno: 20. 3. 2007, 17:02:08 · Upravil/a: oogi
roberta
Nemyslím si, že by ta databáze byla navrhnutá špatně, ale nějak jsem nepočítal s tím, že bych někdy potřeboval s tím něco takovéhleho dělat. Abys mohl objektivně posuzovat správnost navrhnutí, musel bys znát všechny údaje se kterými se pracuje. |
||
Mastodont Profil |
#14 · Zasláno: 20. 3. 2007, 17:06:17
oogi
No nejrychlejší asi bude, když si ty kategorie vytvoříš ručně. Případně si pomož select distinct, který vybere všechna první slova z řádků. |
||
Retal Profil |
#15 · Zasláno: 20. 3. 2007, 17:24:52
SELECT DISTINCT(LEFT(nazev, LOCATE(' ', nazev))) AS rod |
||
tiso Profil |
#16 · Zasláno: 20. 3. 2007, 17:32:27
...stále nie som z toho múdrejší, tak to nechám tak...
Abys mohl objektivně posuzovat správnost navrhnutí, musel bys znát všechny údaje se kterými se pracuje. Vyhovuje tá databáza 3NF? |
||
Časová prodleva: 17 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0