sql >> Database teknologi >  >> RDS >> Mysql

Mysql tyske accenter ikke-følsom søgning i fuldtekstsøgninger

Når du definerer individuelle CHARACTER SETS for dine kolonner tilsidesætter du den sortering, du har angivet som standard på tabelniveau.

Hver af dine kolonner har standard latin1 sortering (som er latin1_swedish_ci ). Du kan se det ved at køre SHOW CREATE TABLE .

I FULLTEXT forespørgsler, indekserede kolonner har COERCIBILITY af 0 , det vil sige, at alle fuldtekstforespørgsler konverteres til den sortering, der bruges i indekset, ikke omvendt.

Du skal fjerne CHARACTER SET definitioner fra dine kolonner eller indstil eksplicit alle kolonner til 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. indsæt værdi uden at indstille primærnøgle

  2. MySQL REPLACE:Sådan erstatter alle forekomster af en char i hver enkelt understreng afgrænset af samme hoved og hale

  3. Hvordan sender du et argument til en PL/SQL-blok i en sql-fil kaldet ved hjælp af START i sqlplus?

  4. Sqoop Import --password-fil funktion fungerer ikke korrekt i sqoop 1.4.4