【问题标题】:Mysql set local variable in the select statement and return same select output with only one queryMysql在select语句中设置局部变量,只用一个查询返回相同的select输出
【发布时间】:2017-07-16 05:08:40
【问题描述】:

我有客户表,我想返回客户信息并在本地变量中进行设置。

declare customerId int;

declare customerName varchar(50);

select customerId=id, customerName=name, address, salary from customers where id=1;

然后我想使用这些局部变量 customerId,customerName 来传递另一个函数。

即func(customerId,customerName);

但是当我在 mysql SP 中选择这些变量时,我得到空值。谁能告诉我该怎么做?

【问题讨论】:

    标签: mysql sql


    【解决方案1】:

    你可以这样做,如下:

    SELECT @customerId := `id`, @customerName := `name` 
    FROM customers
    WHERE id = 'some value';
    

    查询的工作假设列名是idname

    您可以关注相同的类似讨论,here

    更新: 根据问题的变化,答案也随之变化。

    这部分将您想要的值分配给本地 SQL 变量。

    SELECT @customerId := `id`, @customerName := `name` 
    FROM customers
    WHERE id = 1;
    

    这部分可以作为你的 SP 的回应。

    SELECT id, name, address, salary
    FROM customers
    WHERE id = 1;
    

    希望这会有所帮助!

    【讨论】:

    • 如何将此 select 语句作为 sql sp 的输出返回?这个 sp 现在不返回任何输出,而只是分配值。我如何做到这两点?
    • 赋值后,您可以将这些变量返回给您的另一个 SP(或)在 SP 本身中实现赋值后的逻辑。
    • 您的问题是关于将您的 SELECT 查询的值分配给变量,我已经回答了。如果对您的实际问题还有其他问题,那么您应该继续提出新问题!
    • 问题实际上是关于在 SELECT 中分配值并在 SP 输出中返回相同的 SELECT。对困惑感到抱歉。我现在将编辑标题。
    猜你喜欢
    • 2013-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多