首页 > 解决方案 > 如何在mysql中为(select * from)设置变量

问题描述

我正在尝试为 x.* 和 y.* 设置一个变量,如下所示:

("SELECT x.* as x_var, y.* as y_var 
  FROM table_x x 
  INNER JOIN table_y y on x.id = y.id WHERE x.id='1'");

但是代码给出了一个错误:

SQLSTATE[42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以在第 1 行的 'as table_x, y.* as y_var FROM table_x x INNER JOIN table_y d ON x.id = y.id WH' 附近使用正确的语法

我该如何解决?

标签: phpmysqlsql

解决方案


恕我直言,您对“变量”的使用是模棱两可的。请阅读:MySQL:@variable 与变量。有什么不同?

如果您的意思是列别名,您可以

 SELECT col1 a, col2 b, col3 c
   FROM whatever

您尝试使用 分配多个别名SELECT * AS alias。你不能那样做™。

如果你的意思是你想要的局部变量

 SELECT @a := col1, @b := col1

而且,你也做不到SELECT @a: = *

专业提示:SELECT *尽可能避免使用。而是提供您想要的列名列表。


推荐阅读