Autor Zpráva
Jack06
Profil
Dobrý den, chtěl bych se zeptat, jak přes sql dotaz porovnat jen část sloupce:

mám sloupec: zaznamy a v něm data uložena takto:
nejakytext-cislo
nejakytext-cislo
nejakytext-cislo

Já bych potřeboval porovnat, zda to číslo je větší jak $cislo a jen ty vyhovující záznamy vybrat. Bohužel nevím zda lze a jak porovnat jen tu část za pomlčkou. Děkuji

//jen doplním pokud to nelze lehce, tak ten text: nejakytext vím jaký je ještě před dotazem, takže by se dal použít či délka použít či cokoli aby to šlo nějak vybrat
Casero
Profil
Pokud se vyskytuje pouze jedna pomlčka, tak například takto:
...where SUBSTRING(zaznamy,LOCATE("-", zaznamy)+1)>$cislo

Ale bylo by lepší dodržovat normální formy a mít nejakytext v jednom sloupci a cislo ve druhém.
Jack06
Profil
Casero:
Nu tak stačit to asi bude, mě napadlo subselectem to ještě řešit no, tam jde o to, že já kontroluji, ten text a porovnávám číslo takže hledám, kde text_pred_pomlckou == nejakytext a text_za_pomlckou > $cislo
Casero
Profil
...where SUBSTRING(zaznamy,LOCATE("-", zaznamy)+1)>$cislo and zaznamy like "$text-%"
Tori
Profil
Jack06:
Můžete kdyžtak dát konkrétní příklad, co je to za údaj - sériové číslo něčeho (výrobku, faktury, ...)? Používá se jako primární klíč, nebo se může někde opakovat (celý údaj text-číslo, nebo i jen ta samotná textová část)? Je textová část závislá na údaji z jiné tabulky (např. všechny výrobky z jedné kategorie začínají stejným textem)?

Možná by to šlo ukládat i do dvou sloupců, pak by se s tím lépe pracovalo.
Jack06
Profil
Tori:
jedná se pouze o ukládání odpovědí, kde:

radek_odpovedi-odpoved_z_inputu

radek_odpovedi může být číslo nebo to může být i text .. nijak dále to použité jako ke klíči nebo tak není.

Jedná se o něco jako filtrování odpovědí z ankety. Výše uvedené řešení by mělo stačit záznamy jsou většinou do 100znaků a rozdělit se do více sloupců nedají, tak to již je udělané.. filtrování je pouze doplněk k tomu systému
Kajman
Profil
Jack06:
rozdělit se do více sloupců nedají, tak to již je udělané

Pokud to chcete řešit databázově, tak si data rozdělte. Jinak to bude pomalé a můžete si to i naprogramovat mimo sql.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: