MySQL:在Select中使用变量/函数返回值

时间:2017-08-04 04:23:17

标签: mysql sql database variables select

有一个名为customer的表格如下:

|  Name  |  Age  |  Balance  |
------------------------------
|  Kevin |  25   |  150000   |
|  Bob   |  33   |  350000   |
|  Anna  |  27   |  200000   |

简单地说,选择" Name"我们可以使用的栏目:

SELECT Name FROM customer

现在,我想通过使用这样的变量来做到这一点:

SET @temp = 'Name'
SELECT @temp FROM customer

我得到的结果:

|  @temp  |
-----------
|   Name  |

我想要的结果与普通选择相同:

|  Name  |
----------
|  Kevin |
|  Bob   |
|  Anna  |

我希望这会运行与#34; SELECT Name From Customer"相同,所以它基本上从变量值运行SELECT。

我还使用函数返回值来做同样的事情,但我得到了类似的结果。例如,有一个名为CustName(Value)的函数:

SELECT CustName(A) // Return : 'Name' 
FROM   customer;

这会给我结果:

|  CustName(A)  |
-----------------
|      Name     |

MySQL有没有办法运行" Name"通常就像我基本上写'#34;从客户选择姓名" ?

1 个答案:

答案 0 :(得分:1)

你所说的你正在寻找的是动态的sql ...由于性能原因,你试图改变数据库想要修复的查询的一部分通常不是一个神话般的想法。你也很难在客户端应用程序中使用你的sql,如果它需要一个用户名字符串,但是用户提供了'birthday'作为要选择的东西而你的客户端得到了一个日期

如果你真的很想做这件事,这篇SO帖子会提供更多细节:How To have Dynamic SQL in MySQL Stored Procedure

我必须要求你考虑,这是你设计的一个破解的解决方案,还有其他一些问题。发布另一个问题可能会更好,因为解决它可能会提高效率