使用函数创建mysql视图
我在下面创建了这个函数,以便在mysql视图中使用它。但是,当我运行视图查询时,它会显示错误“非法混合排序规则(latin1_swedish_ci,隐式)和(utf8_general_ci,可强制)以进行操作 “。但我将函数varchar改为int。它工作正常。请帮帮我使用函数创建mysql视图,mysql,sql,database,Mysql,Sql,Database,我在下面创建了这个函数,以便在mysql视图中使用它。但是,当我运行视图查询时,它会显示错误“非法混合排序规则(latin1_swedish_ci,隐式)和(utf8_general_ci,可强制)以进行操作 “。但我将函数varchar改为int。它工作正常。请帮帮我 CREATE FUNCTION `book_subject`() RETURNS varchar(10) CHARSET utf8 RETURN @subject CREATE VIEW `qry_tools` AS SEL
CREATE FUNCTION `book_subject`() RETURNS varchar(10) CHARSET utf8
RETURN @subject
CREATE
VIEW `qry_tools` AS
SELECT
`companyID`.`companyID` AS `companyID`
FROM companymaster
WHERE
((`motmaster`.`companyID` = BOOK_SUBJECT()))
您的表可能有拉丁文1_瑞典语ci排序规则 如果您创建了一个返回UTF8字符串的存储函数,那么没有简单的方法可以告诉您应该返回拉丁1_瑞典_ci字符串,并在调用该函数的进一步表达式中使用该字符串 文档说明使用了返回字符串的默认排序规则(如果是UTF8字符集,则为UTF8\U GENERAL\U CI)。 但是,如果希望字符串表达式(调用函数)使用拉丁语瑞典语ci,则必须在表达式的所有术语中提及“collate拉丁语瑞典语ci”
RETURN @subject collate latin1_swedish_ci
更多
您的表可能有拉丁1_瑞典_ci排序规则 如果您创建了一个返回UTF8字符串的存储函数,那么没有简单的方法可以告诉您应该返回拉丁1_瑞典_ci字符串,并在调用该函数的进一步表达式中使用该字符串 文档说明使用了返回字符串的默认排序规则(如果是UTF8字符集,则为UTF8\U GENERAL\U CI)。 但是,如果希望字符串表达式(调用函数)使用拉丁语瑞典语ci,则必须在表达式的所有术语中提及“collate拉丁语瑞典语ci”
RETURN @subject collate latin1_swedish_ci
更多
您应该使用相同的排序规则进行比较。这将是一项工作
您应该使用相同的排序规则进行比较。这是可行的。谢谢您的回答,但两个代码都不起作用。我看了答复后找到了解决办法
(CONVERT( `motmaster`.`companyID` USING UTF8) = BOOK_SUBJECT())
谢谢你的回答,但这两个代码都不起作用。我看了答复后找到了解决办法
(CONVERT( `motmaster`.`companyID` USING UTF8) = BOOK_SUBJECT())