mysql - Levenshtein 无法查找俄语单词
问题描述
我有一个脚本,它使用 Levenshtein 在数据库中搜索单词。当我搜索英文单词时一切都很好,但是当我搜索俄语单词时,MySQL 控制台给出了一个错误:
[22007][1366] (conn=31079) Incorrect string value: '\xD0\xA1\xD0\xBA\xD0\xBE...' for column ``.``.`s1` at row 1
我所有的表都有 CHARACTER SET utf8mb4。
我的查询:
SELECT * FROM messages
WHERE levenshtein(text_ru, 'testtest') BETWEEN 0 AND 1
我的表“消息”列“text_ru”:
================
=Твое имя? =
================
=Твоя фамилия? =
================
...
解决方案
我尝试了另一个 Levenshtein 脚本,一切都解决了 https://www.lucidar.me/en/web-dev/levenshtein-distance-in-mysql/
推荐阅读
- ios - 如何通过 PHPhotoLibrary 重命名照片名称
- c++ - Nasm 将程序集引导加载程序导出为与内核链接的对象
- r - 在data.table r中按名称选择不连续的列
- javascript - 根据点击隐藏和显示不同的子元素
- javascript - 收件人地址需要带有 JavaScript 的 gmail api
- oracle - 在没有 JavaScript 的情况下将 Oracle PL/SQL 移植到 Snowflake
- python - 从 Django 中的 for 循环创建新的 for 循环
- windows - REG_BINARY 在 Windows 注册表中可以有多大?
- node.js - 从 mongoose 的数组中按 id 删除对象
- javascript - 在 React 中并排放置每个 div 的 2 个元素