Mam pole w mojej bazie danych, które jest zakodowane. Po użyciu from_base64 na boisku wygląda to tak:Jak wyodrębnić część łańcucha zakodowanego w Base64 w MySQL?
<string>//<string>//<string>/2017//06//21//<string>//file.txt
Nie może być nieokreślonej liczby ciągów na początku ścieżki, jednak datę (RRRR MM // // DD) zawsze mają dwa pola po prawej stronie (ciąg znaków, po którym następuje rozszerzenie pliku).
Chcę posortować według tego wzoru YYYY // MM // DD i uzyskać liczbę dla wszystkich ścieżek z tą datą.
Więc zasadniczo chcę, aby to zrobić:
select '<YYYY//MM//DD portion of decoded_path>', count(*) from table group by '<YYYY//MM//DD portion of decoded_path>' order by '<YYYY//MM//DD portion of decoded_path>';
O jedynym sposobem dostaniesz to do pracy jest, jeśli rozbić tekst, który chcesz przeszukać na własne pole. Ponieważ dane nie mają identyfikatorów (tj. Pary nazwa/wartość lub json lub xml), procesor będzie wymagał intensywnego przetwarzania, aby przeanalizować ciąg wewnątrz zapytania. Przypuszczam, że to literówka w pierwszym zdaniu, a miałeś na myśli zakodowaną zamiast dekodowania. Zobaczysz znaczący spadek wydajności dzięki zastosowaniu proponowanej przez Ciebie metody. Byłoby znacznie szybciej, aby uruchomić aktualizację, która analizuje zdekodowaną kolumnę i umieszcza informacje do wyszukania w swojej własnej kolumnie. –
Dlaczego nie wstawiasz daty jako oddzielnej kolumny podczas wstawiania wiersza? – mikep
Czy intencjonalny jest raczej singiel niż double slash przed 2017 r.? –