将MySQL字段名称定义为变量

时间:2017-07-05 21:22:01

标签: mysql variables mysql-workbench

有没有办法在MySQL中将字段名称设置为变量? 例如:

 var client = new HttpClient();
            var queryString = HttpUtility.ParseQueryString(string.Empty);
    enter code here
            // Request headers
            client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", "******************");
            var uri = "https://westus.api.cognitive.microsoft.com/text/analytics/v2.0/sentiment"; 

            HttpResponseMessage response;
            Document doc = new Document();
             byte[] byteData = Encoding.UTF8.GetBytes(doc.ReturnJson());                      

            using (var content = new ByteArrayContent(byteData))
            {
                content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
                response = await client.PostAsync(uri, content);
                response.ToJSON();
            }

这正是我尝试过的方式,但它返回"字段列表中的未知表"。

提前致谢,

麦克

编辑:目的是在动态水晶报告参数中使用变量。但是,我不想做的是每次出现新的性别时都要添加一种新的性别。

E.G。我有男性'和女性'并且正在添加“跨性别”#。我希望Crystal中的动态参数能够呈现“跨性别”和“反式性别”。将参数添加到gender_column时参数中的变量。我不想再次访问使用该变量的多个查询来添加' Trans-gender'它。

1 个答案:

答案 0 :(得分:1)

  

有没有办法在MySQL中将字段名称设置为变量?

没有。 SQL不允许使用模式,表或列名称的变量。

有一种解决方法,您可以使用文本字符串处理来创建查询,然后运行它。这样的事情可能有所帮助。

PREPARE query 
  FROM CONCAT ('select * from table_name', 
               'where find_in_set(table_name.gender_column, '
               @variable,
               ');'
              );

EXEC query;

DEALLOCATE PREPARE query;

这可能是做你想做的迂回方式。技术术语是“大肥毛球”。