gpt4 book ai didi

php - MySQL Union 非法混合排序规则

转载 作者:可可西里 更新时间:2023-11-01 07:49:55 24 4
gpt4 key购买 nike

我的 PHP 查询中有以下内容:

SELECT tags.tag, theValues.* 
FROM ch09.tbl_tags tags
RIGHT JOIN ((SELECT 'dog' as 'Vals')
UNION (SELECT 'cat' as 'Vals')) theValues on tags.tag = theValues.Vals

在“RIGHT JOIN”之后,括号内的所有内容都是根据用户输入动态创建的。

它在 MySQL 4 中运行良好,但我刚有一台新计算机并安装了 5.5,将 SQL 转储导入为 UTF-8 .但我得到:

"Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='"

可能有更好的方法来构造我的查询,我需要的是用户在一列中输入的所有内容作为“Vals”,如果 tbl_tags.tag 中有匹配的标签那么它应该在名为“标签”的列中,否则标签列为空。

我试过使用整理:http://www.answermysearches.com/mysql-fixing-illegal-mix-of-collations-message/352/ ,但我根本无法让它工作。

所以我需要构建更好的查询或以某种方式使用整理函数,但是如何呢?

提前致谢。

克雷格

最佳答案

请看下面的问题:MySQL Encoding Question

我认为问题实际上与列和 SQL 文本的编码有关。要解决这个问题,请尝试使用 CONVERT(aaa USING bbb)在 WHERE 子句中按如下方式运行:

SELECT tags.tag, theValues.* 
FROM ch09.tbl_tags tags
RIGHT JOIN ((SELECT 'dog' as 'Vals')
UNION (SELECT 'cat' as 'Vals')) theValues
ON CONVERT(tags.tag USING utf8) = theValues.Vals

或者,将表格的列编码更改为 UTF8。

希望对您有所帮助,

约翰...

关于php - MySQL Union 非法混合排序规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13213103/

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