जब आप अलग-अलग CHARACTER SETS
. को परिभाषित करते हैं अपने स्तंभों के लिए, आप तालिका स्तर पर डिफ़ॉल्ट रूप से सेट किए गए संयोजन को ओवरराइड करते हैं।
आपके प्रत्येक कॉलम में डिफ़ॉल्ट latin1
है संयोजन (जो latin1_swedish_ci
. है ) आप इसे SHOW CREATE TABLE
. चलाकर देख सकते हैं ।
FULLTEXT
. में क्वेरी, अनुक्रमित कॉलम में COERCIBILITY
है का 0
, यानी सभी पूर्ण-पाठ प्रश्नों को अनुक्रमणिका में उपयोग किए गए संयोजन में बदल दिया जाता है, न कि इसके विपरीत।
आपको CHARACTER SET
को हटाना होगा अपने कॉलम से परिभाषाएं या स्पष्ट रूप से सभी कॉलमों को 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;