QUERY中的MYSQL排序规则


MYSQL Collate in QUERY

嗨,我正试图在我的网站上进行搜索,该网站正在使用查找数据库

CHARACTER SET utf8 COLLATE utf8_slovak_ci

表也是utf8_slovak_ci。在名为knihy(books)的表中,我有字段Autor1 Autor2 Autor 3 Autor4/Author 1等。/以下是我用于搜索的查询:

$q = $this->db->query("SELECT * FROM (`knihy`) 
              WHERE `stav` = 1 
              AND (Autor1 LIKE '$vyraz' 
              OR Autor2 LIKE '$vyraz' 
              OR Autor3 LIKE '$vyraz' 
              OR Autor4 LIKE '$vyraz') 
              ORDER BY `id` desc LIMIT $limit OFFSET $offset ");

假设我的桌子上有一本名为"Šilíoá"的Autor1/Author1/的书,如果我在寻找"Šilío",它也会被找到。如果我在找"Šilioa",它会被找到,但如果我在查找"silioa",什么都找不到。所以问题出在char"Š"answers"š"中,我该如何解决这个问题?我在网上找到了很多教程,但它仍然不起作用。。。

您可以通过将表字符集设置为utf8,将排序规则设置为utf4_general_ci或utf8_unicode_ci来修复它。您还需要在代码(连接字符串)中将charset设置为utf8。

连接字符串示例:

string cs=@"server=localhost(或IP地址);userid=root;password=xxx;database=table_name;charset=utf8"