Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用函数创建mysql视图_Mysql_Sql_Database - Fatal编程技术网

使用函数创建mysql视图

使用函数创建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

我在下面创建了这个函数,以便在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
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())