我正在使用来自 php 脚本的以下 sql 查询插入一个单词。
$sql = "INSERT IGNORE into cb_words (word, user_id) VALUES('$word', $user_id)";
在这种特殊情况下会出现问题 - cb_words 表包含孟加拉语的单词。
- word - আর 编码为 Unicode 格式是 %u0986%u09B0
- 另一个词 - আঁর 编码为 Unicode 格式是 %u0986%u0981%u09B0
正如人们可能从 Unicode 编码中注意到的那样,这两个词几乎是相似的,只是在第二个词中多了一个字母。
现在,表 - cb_words 已经包含第二个单词,但是当我尝试插入第一个单词时它失败了。它不插入单词,只是说插入了 0 行。
INSERT IGNORE into cb_words (word, user_id) VALUES('আর', 2)
令人震惊的是,当我在表格中搜索这个词时 -
SELECT * FROM `cb_words` where `cb_words`.`word` = 'আর'
返回的结果是 -
注意:该表只有上述单词 (2)。我正在尝试插入 (1)
那么,尽管事实上,这两个词并不是 100% 相同的,为什么 mysql 无法区分这两者呢?