Portál AbcLinuxu, 7. května 2025 10:20
7|1#9|1,5,7#10|2,4,51# 7|1#9|1,4,5#10|1,3,38#
sloupec LIKE "9|4#%" OR sloupec LIKE "%#9|4#%" OR sloupec LIKE "%#9|%,4#%" OR sloupec LIKE "%#9|%,4,%#%" OR sloupec LIKE "%#9|4,%#%"ale to vybere oba sloupce, chtel jsem to zkusit pomoci REGEXP ale priznam se ze regulerni vyrazy jsem nikdy neosilil. Poradil by nekdo prosim nejake reseni?
\b9[|][\d,]*\b4\b
REGEXP '9[|][^#]*4'
a vypada to ze funguje jak ma
'(^|#)9\|(4[,#]|([\d]+,)+4[,#])'
Doporučuji přečíst si něco o návrhu datového modelu a normalizaci. Je to velice užitečné a ušetříš si tím spoustu práce.
Jestliže s těmi daty chceš pracovat na úrovni databáze, tak ty hrůzy, co tam máš, je potřeba rozbít na víc sloupců případně tabulek – abys tam měl atomické hodnoty.
Pokud by to z povahy dat resp. jejich struktury nešlo (většinou to jde), tak použij nějaký datový typ, který ti umožní uložit víc hodnot/strukturu do jednoho sloupce (XML, pole atd.), se kterým tvůj SŘBD umí pracovat a nabízí pro něj funkce/operátory.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.