Mam tabelę MySQL (test) z kodowaniem znaków UTF-8. Istnieją trzy wpisy, dwa wpisy z normalnymi znakami i inną nazwą ze znakami akcentującymi.Jak odfiltrować kolumnę za pomocą znaków nieakcentowanych za pomocą zapytania wyboru
CREATE TABLE test (
id Integer,
name VARCHAR(50),
PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
INSERT INTO `test` (`id`, `name`) VALUES (1, 'aaaa');
INSERT INTO `test` (`id`, `name`) VALUES (2, 'AAAA');
INSERT INTO `test` (`id`, `name`) VALUES (3, 'áááá');
Jeśli uruchomić następującą kwerendę wybierającą, to zwraca wszystkie 3 prace
wynik rzeczywisty: -
select * from test where name like '%aa%';
id | name
----|----
1 | aaaa
2 | AAAA
3 | áááá
Zamiast tego, należy wrócić ostatni wpis z identyfikatorem = 3.
Nie chcę używać "BINARNE" LUB "KOLLATE utf8_bin", ponieważ zwraca tylko rozróżnianie wielkości liter.
muszę szukanie normalne sznurkiem jak zapytania, na przykład: -
Oczekiwany rezultat: -
select * from test where name like '%aa%';
id | name
---|-----
1 | aaaa
2 | AAAA
Po prostu. Możesz usunąć akcenty z kolumny przed wyszukiwaniem (wpisz swoją funkcję), np. 'where removeaccent (name) LIKE '% aa%'' –
Getting "ERROR 1305 (42000): FUNCTION DB.removeaccent nie istnieje" gdzie mam napisać funkcję? – SST
Wszelkie wejścia tutaj naprawdę docenione – SST