gpt4 book ai didi

MySQL 变量赋值没有分配给变量——我做错了什么?

转载 作者:行者123 更新时间:2023-11-29 07:18:07 26 4
gpt4 key购买 nike

我正在尝试为用户定义的变量赋值,如下所示:

SET @v1='name_to_filter';


SELECT *
FROM mytable
WHERE column=@v1;

问题是此代码返回 0 行,但如果我没有声明此变量而是将要过滤的名称放在关闭代码的位置,则代码返回几行:

SELECT *
FROM mytable
WHERE column='name_to_filter';

所以变量没有保存我分配给它的名称,我做错了什么?

最佳答案

您的用户定义变量的排序规则默认为您的连接排序规则,这与您尝试比较的列的排序规则不同。结果 mysql 无法正确进行比较,因此抛出错误。

一种解决方案是更改您的连接排序规则以匹配您的列排序规则。在其余语句之前运行此语句:

SET NAMES 'utf8mb4' COLLATE 'utf8mb4_unicode_ci';

要确认列的排序规则,您可以使用此语句:

SHOW FULL COLUMNS FROM tablename

它返回一个名为 Collat​​ion 的列

关于MySQL 变量赋值没有分配给变量——我做错了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58121074/

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