Wpis z mikrobloga

Mireczki spod #bazydanych i #sql #mysql przepraszam, że w to piękne, piątkowe popołudnie tutaj wołam, ale mam problem i od kilku dni nie mogę sobie z nim poradzić..

Zacznę od początku. Pracuję przy sklepie internetowym, w którym jest ponad 10 tysięcy produktów. Chciałam zmienić w nim masowo meta tytuły i opisy. Najprościej oczywiście przez bazy danych, tak też zrobiłam. Jednakże, w związku z tym, że Google z powrotem wprowadził emoji to chciałam takowe dodać. Niestety zamiast emoji robiły się znaki zapytania. Poszperałam trochę w internetach i i na to znalazłam rozwiązanie:

`ALTER TABLE Tablename CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin

Oczywiście zadziałało, emoji dodane, wszystko cudownie, w Google też się wyświetla z pięknymi, kolorowymi znaczkami. Dopiero po chwili doszło do mnie, co przy okazji spsułam :-). Teraz jak jestem w sklepie od strony zarządzania produktami (PrestaShop) to kiedy wpisuję w nazwie produktu coś czego szukam, to muszę to wpisać dokładnie tak, jak jest to zapisane, inaczej tego nie znajdzie, tzn. rozróżnia wielkość liter. Czyli jeśli mam produkt zapisany jako, powiedzmy, Cebula 1 kg to jak wpiszę "cebula" z małej to mi jej nie znajdzie.. Co jest mocno problematyczne.

Próbowałam różnymi sposobami zmieniać w bazie kodowanie, ale na nic to wszystko. Od kilku dni walczę ale już czuję, że wyczerpałam wszystkie możliwości. Może ktoś wie jak naprawić co zepsułam, może ktoś juz miał taki problem? Z góry dzięki za pomoc.
  • 26
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@kizimajaro: sorry, że wołam a nie pomogę ale mam pytanie które mnie nurtuje po przeczytaniu posta. Powiedzmy, że nie rozwiążesz problemu i nikt ci nie pomoże. To co wtedy robisz? Wykupujesz pomoc, zatrudniasz kogoś dodatkowo i dajesz mu % od projektu? Co zrobić jak nie umiemy czegoś zrobić, czas leci a klient ustalił termin oddania projektu?
  • Odpowiedz
@NiePrzystosowanyDoZycia: ale odpowiadając już na Twoje pytanie to wydaje mi się, że nie powinno się zabierać za czyjś serwis jeśli nie ma się do tego odpowiedniego zespołu, a już na pewno jak czas tyka a robi się coś komuś za gruby hajs to się nie szuka chyba pomocy na Wykopie?
  • Odpowiedz
@kizimajaro: nie chodzi mi o zmianę tabeli; nie wiem czy masz dostęp do kodu bazy - gdzieś pewnie jest procedura odpowiadająca za wyszukiwanie produktów, w której jest zaszyte zwykłe zapytanie sql
tam trzeba by było wprowadzić case-insensitive
  • Odpowiedz
@seeksoul: jak czytam Twoje odpowiedzi to dopiero wiem, że nic nie wiem.. mam dostęp do wszystkiego - hosting też jest mój, więc mam dostęp do plików sklepu i do plików sklepu od strony admina, czyli tam gdzieś mam poszukać jak zachowuje się ta wyszukiwarka?
  • Odpowiedz
@brmstufldigart: teraz to już za późno, bo minęło kilka dni moich prób a w tym czasie zmieniły się stany ale też właściwości produktów, bo w międzyczasie dodaję do nich producentów, wagi itp. więc dużo mojej pracy..
  • Odpowiedz
@kizimajaro: To jeszcze sprawdź jak to wygląda dla konkretnej kolumny bo generalnie to nie przeszkadza:

MariaDB [test1]> ALTER TABLE test CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
Query OK, 3 rows affected (0.04 sec)
Records: 3 Duplicates: 0 Warnings: 0
MariaDB [test1]> select * from test where kolumna
  • Odpowiedz
@maniac777: W bazie danych rzeczywiście też nic nie zwraca:

MySQL zwrócił pusty wynik (zero wierszy). (Wykonanie zapytania trwało 0.0128 sekund(y).)

Muszę użyć odpowiednich wielkości. Mimo ustawień tak jak wyżej
  • Odpowiedz