让我的问题变得简单,任何人都知道为什么这个查询返回true
SELECT '?????' ='??????????' COLLATE utf8_unicode_ci ;
Run Code Online (Sandbox Code Playgroud)
而此查询返回false
SELECT '?????' LIKE '%??????????%' COLLATE utf8_unicode_ci ;
Run Code Online (Sandbox Code Playgroud)
我怎么能让后来的回归真呢?谢谢 .
我想您想阅读 MATCH... AGAINST... 以处理“自然语言全文搜索”
我将 mysql.com 给出的示例加载到 sql fiddle 中,稍微修改它以包含您的阿拉伯字符串,它按预期工作。
在此处查看我的 sqlfiddle:http ://sqlfiddle.com/#!2/92317/1
(现在使用 BOOLEAN MODE 并定义 CHARSET 和 COLLATION)
由@Nyran91 更新 sqlfiddle:http ://sqlfiddle.com/#!2/4a7004/3
CREATE TABLE articles (
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
title VARCHAR(200),
body TEXT,
FULLTEXT (title,body)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
INSERT INTO articles (title,body) VALUES
('?????????? DCKIEW', 'DAVADV ?????????? AVADV')
SELECT * FROM articles
WHERE MATCH (title,body)
AGAINST ('?????' IN BOOLEAN MODE);
Run Code Online (Sandbox Code Playgroud)