Jak ujednolicić dane które są już w bazie MySQL?

0

Witam!

Mój problem jest dokładnie taki jak w temacie, potrzebuję ujednolicić dane które już posiadam w bazie MySQL, tylko nie wiem w jaki sposób mógłbym to zrobić. Dane chciałbym ujednolicić, ponieważ potrzebuję je porównywać, no a nawet mały myślnik już sprawia że dane nie są zgodne :/ Może istnieje jakiś sposób żeby pozbyć sie wszystkich znaków specjalnych czy coś w tym stylu podczas porównywania? Bo dane z tabeli Min_Reqs jak i CPU są wyświetlane na stronie, aczkolwiek najważniejsza informacja to model procesora. Poniżej podaje przykład moich danych, jeżeli ktoś by potrzebował to mogę podesłać dump bazy.

Przykład danych w tabelach które porównuje :
Tabela CPU:
Intel Core i5-3470 @ 3.20GHz
Intel Core2 Duo E8400 @ 3.00GHz
Intel Pentium T2410 @ 2.00GHz
Tabela: Min_Reqs:
Core i5 3470, 3.2GHz
Core 2 Duo E8400, 3GHz
Pentium Dual Core T2410, 2GHz

0

No to użyj regexa.

0

Właśnie próbowałem ale nim aż tak dobrze nie umiałem pobrać danych, aczkolwiek poszukałem poszukałem i znalazłem w MySQL taką funkcje jak MATCH(), sprawuje się idealnie, wystarczy ustawić kolumnę na FULLTEXT, a później baza już wszystko pięknie wyszukuje, pomijając wszystkie znaki.

1

Na przyszłość - nie wstawiaj surowych danych, tylko przetwarzaj je i zapisuj w formie przydatnej do wyszukiwania. Na danych wejściowych wykonujesz te same funkcje co przy transformacji przed zapisem.
Np.
wejście = abc23-32.a2
wyjście = ABC2332A2 (to zapisujesz do oddzielnej kolumny, natomiast prezentujesz dane tak jak były wpisane)

Przy wyszukaniu przepuszczasz dane przez: UPPER, REPLACE dla kropki, kreski, usuwasz spacje - wynikową wartość porównujesz z kolumną.

0

Jeszcze jedno pytanie mam, czy jest jakaś funkcja w MySQL która znajduje określony wzrzesz w stringu i usuwa go ze stringa, a następnie przenosi do innej kolumny w tabeli? Potrzebuję zrobić coś takiego że jak ktoś pobiera dane i mu pobierze "NVIDIA GeForce GTX 1050 Ti" to ja będę mógł określić że słowo "NVIDIA" ma zostać usnięte i przeniesione do kolumny obok tak żey zostało mi tylko " GeForce GTX 1050 Ti"

0

a nie potrafisz napisać skryptu w zwykłym języku programowania tylko na siłę chcesz to robisz na bazie?

0

Szerze mówiąc to nie miałem styczności z czymś takim więc nie wiem jak zbudować taki skrypt, myślałem nad wykorzystaniem triggera i funkcji trim, aczkolwiek nie wiem czy są jakieś lepsze sposoby bo nigdy tym się nie zajmowałem

0

to po co ci w takim razie baza jak nic nią nie będziesz robił?

0

Przepraszam źle to wytłumaczyłem, mam napisany program w pythonie który pobiera mi informacje o karcie, a następnie wrzuca je do bazy danych. Później porównuje te pobrane dane z danymi które mam w tabeli GPU, lecz w GPU mam nazwę bez słowa ""NVIDIA", dlatego chce usunąć ten przedrostek przed dodaniem do bazy.

0

no to odrób to w pythonie przed dodaniem do bazy, albo napisz skrypt w pythonie który zaktualizuje wybrane rekordy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1