【问题标题】:SELECT .. INTO returns more than one rows - MysqlSELECT .. INTO 返回多行 - Mysql
【发布时间】:2018-03-02 17:56:57
【问题描述】:

我有一个基本的存储过程

DECLARE user_o VARCHAR(50);

SELECT user_name INTO user_o FROM users WHERE topic_id = 54 AND entry_time BETWEEN 
2017-09-17 AND date_add( CURRENT_DATE, INTERVAL 1 DAY) ORDER BY entry_time ASC 
LIMIT 10;

这会引发错误 #1172 sql 返回多行。不知道为什么?

我的目标是得到这个结果集

user_name |  user_o
  mike       mike
  liz        liz
  helen      helen
  her        her

【问题讨论】:

  • user_o表是否已经存在?
  • @tom 该死的。我忘了添加 FROM 语句。编辑的问题。谢谢指点
  • users 包括 user_name、topic_id、entry_time 和 user_o 是一个声明

标签: mysql stored-procedures insert insert-into


【解决方案1】:

这是因为您将结果“INTO”插入一个变量,并且因为结果不止一个值,因此出现错误。

您的限制为 10,尝试更改为 1,这将解决它,如果您想要返回多个值,那么您需要在记录集中管理这些值。

【讨论】:

  • 是的,但我想做的是:取'mike'表格而不是将其放入'user_o'。比对 'users' 表中的每个 'user_name' 都这样做。我想要 10 个用户名而不是 1。对此有更详细的解释吗?
猜你喜欢
  • 2016-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-21
  • 1970-01-01
相关资源
最近更新 更多