相关疑难解决方法(0)

MySQL:@variable与变量.有什么不同?

在我发布的另一个问题中有人告诉我,之间有区别:

@variable
Run Code Online (Sandbox Code Playgroud)

和:

variable
Run Code Online (Sandbox Code Playgroud)

在MySQL中.他还提到了MSSQL如何具有批量作用域以及MySQL具有会话作用域.有人可以为我详细说明这个吗?

mysql sql variables

488
推荐指数
3
解决办法
42万
查看次数

错误1046没有数据库选中,如何解决?

错误SQL查询:

--
-- Database: `work`
--
-- --------------------------------------------------------
--
-- Table structure for table `administrators`
--
CREATE TABLE IF NOT EXISTS `administrators` (

`user_id` varchar( 30 ) NOT NULL ,
`password` varchar( 30 ) NOT NULL ) ENGINE = InnoDB DEFAULT CHARSET = latin1;
Run Code Online (Sandbox Code Playgroud)

MySQL说:

#1046 - No database selected
Run Code Online (Sandbox Code Playgroud)

这里需要一些帮助.

mysql sql mysql-error-1046

269
推荐指数
9
解决办法
70万
查看次数

MySQL存储过程与函数,我会在什么时候使用?

我在看MySQL存储过程和函数.真正的区别是什么?

它们似乎相似,但功能有更多限制.

我可能错了,但似乎存储过程可以做所有事情,而存储功能可以做得更多.为什么/何时使用程序与函数?

mysql stored-procedures sql-function

151
推荐指数
4
解决办法
9万
查看次数

MySQL中的分隔符

我经常看到人们正在使用Delimiters.我试着找出什么是分隔符,它们的目的是什么.经过20分钟的谷歌搜索,我无法找到满足我的答案.那么,我现在的问题是:什么是分隔符,什么时候应该使用它们?

mysql delimiter

145
推荐指数
4
解决办法
15万
查看次数

在其声明和二进制日志记录中启用了DETERMINISTIC,NO SQL或READS SQL DATA

在mysql中导入数据库时​​,我遇到以下错误:

1418 (HY000) at line 10185: This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)

我不知道我需要改变哪些事情.任何人都可以帮我解决这个问题吗?

mysql

80
推荐指数
5
解决办法
11万
查看次数

如何计算MYSQL中两个字符串之间的相似性

如果我在mysql中有两个字符串:

@a="Welcome to Stack Overflow"
@b=" Hello to stack overflow";

有没有办法使用MYSQL获得这两个字符串之间的相似性百分比?这里例如3个单词是相似的,因此相似性应该是这样的:
count(@a和@b之间相似的单词)/(count(@a)+ count(@b) - count(intersection))
因此结果是3 /(4 + 4 - 3)= 0.6
任何想法都非常感谢!

mysql similarity

34
推荐指数
3
解决办法
3万
查看次数

MySQL,创建一个简单的功能

我想创建一个简单的MySQL函数,我有这个MySQL程序:

CREATE PROCEDURE getUser(gU INT)
   SELECT * FROM Company
   WHERE id_number = gU;

CALL getUser(2);
Run Code Online (Sandbox Code Playgroud)

我需要一些帮助,使其成为MySQL函数.在程序中使用函数的优缺点是什么?

mysql stored-procedures function

33
推荐指数
2
解决办法
15万
查看次数

mysql中的确定性函数

我对一个看似简单的概念感到困惑.Mysql将确定性函数定义为函数

始终为相同的输入参数生成相同的结果

所以在我的理解中,功能就像

CREATE FUNCTION foo (val INT) READS SQL DATA
BEGIN
   DECLARE retval INT;
   SET retval = (SELECT COUNT(*) FROM table_1 WHERE field_1 = val);
   RETURN retval;
END;
Run Code Online (Sandbox Code Playgroud)

不确定(不保证在2次调用函数之间不会发生删除/更新/插入).同时,我看到许多函数几乎完全相同,即基于查询结果的返回值,并声明为DETERMINISTIC.看起来我错过了一些非常基本的东西.

任何人都可以澄清这个问题吗?

谢谢.

更新 感谢那些回答(+1); 到目前为止,似乎存在广泛滥用DETERMINISTIC关键字的问题.我很难相信有这么多人这样做,所以我会等待其他答案.

mysql deterministic user-defined-functions

29
推荐指数
3
解决办法
3万
查看次数

为什么mysql给出错误"不允许从函数返回结果集"?

我试图使用phpMyAdmin创建一个MySQL函数并得到此错误.

#1415 - Not allowed to return a result set from a function
Run Code Online (Sandbox Code Playgroud)

功能代码如下

DELIMITER $$

CREATE FUNCTION get_binary_count(a INT, c INT)
RETURNS INT
DETERMINISTIC 

BEGIN

DECLARE c1, c2 INT;
SET c1=0;
SET c2=0;

SELECT left_id AS c1 FROM mlm_user_mst WHERE parent_id=a AND left_id>0;
SELECT right_id AS c2 FROM mlm_user_mst WHERE parent_id=a AND right_id>0;

IF(c1>0 AND c2>0)
THEN
SET c=c+1;
SET c=c+get_binary_count(c1,0);
SET c=c+get_binary_count(c2,0);
END IF;

RETURN c;

END$$

DELIMITER ;
Run Code Online (Sandbox Code Playgroud)

有什么建议?

提前致谢

mysql sql

12
推荐指数
2
解决办法
4万
查看次数

错误代码:1422.存储函数或触发器中不允许显式或隐式提交

无论我到哪里,看起来MySQL存储过程都可以进行交易.然而,当我声明我的存储函数时

create function test( a int )
returns int
MODIFIES SQL DATA
BEGIN
  START TRANSACTION ;
  update t set col='some value' where id=a ;
  COMMIT ;
  return 0 ;
END //
Run Code Online (Sandbox Code Playgroud)

我明白了

错误代码:1422.存储函数或触发器中不允许显式或隐式提交.

mysql stored-procedures stored-functions

7
推荐指数
1
解决办法
3万
查看次数

MySql 存储过程是原子的吗?

正如标题所说,MySQL 中的存储过程是原子的吗?即会像

for (..)
  <check_if_row_has_flag>
for (..)
  <update_row>
Run Code Online (Sandbox Code Playgroud)

原子地工作?

有趣的是,除了 2009 年的一个论坛帖子外,我在 Google 上找不到太多关于此的信息。

mysql atomic

5
推荐指数
1
解决办法
1292
查看次数