gpt4 book ai didi

MySQL程序。 LIKE 模式匹配 - 西里尔字母字符串

转载 作者:行者123 更新时间:2023-11-29 08:58:28 25 4
gpt4 key购买 nike

我在使用一个 MySQL 过程时遇到问题。该过程本身有效,但仅当我使用拉丁字符时才有效。如果我使用西里尔字母字符串,它就不起作用。该表位于页面顶部的 utf8_general_ci 中,我有“SET NAMES 'utf8'”。任何有关这篇文章的帮助都是值得赞赏的。下面是我的代码。

CREATE PROCEDURE `selUsers`(IN usrNme VARCHAR(25))
BEGIN


SELECT *
FROM users WHERE 1
AND (user_real_name LIKE CONCAT('%', usrNme, '%') OR user_company LIKE CONCAT('%', usrNme, '%') OR user_name LIKE CONCAT('%', usrNme, '%'))
ORDER BY user_real_name ASC LIMIT 0, 15;

END

最佳答案

为了使其工作,您应该在打开连接并选择数据库后使用SET NAMES,告诉mysql客户端将使用特定的字符集发送数据。查看here了解详情。对于您的具体情况,应该是

SET NAMES utf8

另外,我会使用 utf8_unicode_ci 而不是 utf8_general_ci。确实,utf8_unicode_ci 比 utf8_general_ci 慢,但您会得到更好的比较(更准确)...utf8_general_ci 仅适用于西里尔文的俄语保加利亚语子集。 白俄罗斯语马其顿语塞尔维亚语乌克兰语中使用的额外字母未正确排序...您应该如果您要使用这些西里尔字母中的一些字母,请记住这一点。

关于MySQL程序。 LIKE 模式匹配 - 西里尔字母字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9278693/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com