Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Aksen Jerman Mysql pencarian tidak sensitif dalam pencarian teks lengkap

Saat Anda menentukan CHARACTER SETS individual untuk kolom Anda, Anda mengganti susunan yang Anda setel default pada tingkat tabel.

Setiap kolom Anda memiliki latin1 default susunan (yaitu latin1_swedish_ci ). Anda dapat melihatnya dengan menjalankan SHOW CREATE TABLE .

Di FULLTEXT kueri, kolom yang diindeks memiliki COERCIBILITY dari 0 , yaitu semua kueri teks lengkap dikonversi ke susunan yang digunakan dalam indeks, bukan sebaliknya.

Anda harus menghapus CHARACTER SET definisi dari kolom Anda atau atur semua kolom secara eksplisit ke 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengapa kode dalam panggilan sukses AJAX tidak berfungsi?

  2. Stempel waktu Unix vs waktu tanggal

  3. MySQL:Bagaimana saya bisa mendapatkan stempel waktu penyisipan terakhir ke database

  4. Panggilan UPSERT standar SQL

  5. MySQL - Pilih kolom dari tabel lain melalui tabel referensi