php - 如何在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' 附近使用正确的语法
我该如何解决?
解决方案
恕我直言,您对“变量”的使用是模棱两可的。请阅读:MySQL:@variable 与变量。有什么不同?
如果您的意思是列别名,您可以
SELECT col1 a, col2 b, col3 c
FROM whatever
您尝试使用 分配多个别名SELECT * AS alias
。你不能那样做™。
如果你的意思是你想要的局部变量
SELECT @a := col1, @b := col1
而且,你也做不到SELECT @a: = *
。
专业提示:SELECT *
尽可能避免使用。而是提供您想要的列名列表。
推荐阅读
- sql - T-SQL 拆分列结果并对结果进行数学运算
- reportlab - 添加 & 符号时报告实验室文本问题
- php - iOS推送通知成功使用命令提示符但不是在php中
- scala - scala - 遍历目录中的文件并获取与目录中特定字符串匹配的文件名?
- sql - 通过 DESC 订购的替代方案
- javascript - JavaScript function() 不是函数
- jxbrowser - 如何从 jxbrowser 获取 websocket 数据?
- ios - 无法使用 xpath 在 appium iOS 中找到文本字段,并且名称或 ID 不可用
- numpy - Numpy:沿轴按索引数组选择
- kubernetes - 如何在没有集群级别访问权限的情况下在 AKS 集群中创建 PV?