sql >> Database >  >> RDS >> Mysql

Mysql Duitse accenten niet-gevoelig zoeken in full-text zoekopdrachten

Wanneer u individuele CHARACTER SETS definieert voor uw kolommen overschrijft u de sortering die u standaard instelt op tabelniveau.

Elk van uw kolommen heeft standaard latin1 collatie (dat is latin1_swedish_ci ). Je kunt het zien door SHOW CREATE TABLE uit te voeren .

In FULLTEXT zoekopdrachten, geïndexeerde kolommen hebben COERCIBILITY van 0 , dat wil zeggen dat alle fulltext-zoekopdrachten worden geconverteerd naar de sortering die in de index wordt gebruikt, niet omgekeerd.

U moet CHARACTER SET verwijderen definities uit uw kolommen of stel alle kolommen expliciet in op latin1_german_ci :

CREATE TABLE `hotels` (
  `HotelNo` varchar(4) NOT NULL default '0000',
  `Hotel` varchar(80) NOT NULL default '',
  `City` varchar(100) default NULL,
  `CityFR` varchar(100) default NULL,
  `Region` varchar(50) default NULL,
  `RegionFR` varchar(100) default NULL,
  `Country` varchar(50) default NULL,
  `CountryFR` varchar(50) default NULL,
  `HotelText` text,
  `HotelTextFR` text,
  `tagsforsearch` text,
  `tagsforsearchFR` text,
  PRIMARY KEY  (`HotelNo`),
  FULLTEXT KEY `fulltextHotelSearch` (`HotelNo`,`Hotel`,`City`,`CityFR`,`Region`,`RegionFR`,`Country`,`CountryFR`,`HotelText`,`HotelTextFR`,`tagsforsearch`,`tagsforsearchFR`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german1_ci;

INSERT
INTO    hotels (hotelText, HotelTextFR, tagsforsearch, tagsforsearchFR)
VALUES  ('text', 'text', 'graubünden', 'tags');

SELECT  *
FROM    hotels
WHERE   MATCH (`HotelNo`,`Hotel`,`City`,`CityFR`,`Region`,`RegionFR`,`Country`,`CountryFR`, `HotelText`, `HotelTextFR`, `tagsforsearch`, `tagsforsearchFR`)
AGAINST (CONVERT('+graubunden' USING latin1) COLLATE latin1_german1_ci IN BOOLEAN MODE)
ORDER BY
        Country ASC, Region ASC, City ASC;



  1. Is het mogelijk om `SqlDbType.Structured` te gebruiken om tabelwaardeparameters in NHibernate door te geven?

  2. mysql-fout 1406

  3. MySQL top-N ranking en de rest van dezelfde groep optellen

  4. MySQL INSERT-instructie in Python