【问题标题】:SET @var := SELECT * FROM table_name: is it possibleSET @var := SELECT * FROM table_name: 有可能吗
【发布时间】:2012-05-07 16:22:26
【问题描述】:

我正在尝试编写我的 MySQL 查询,但我被困在这个问题上 - 我有多个从我的 php 到 SQL 数据库的查询:

SET @var := SELECT MAX(first_column)
    FROM table;

SELECT @var, 
    table.second_column
FROM table;

但它返回 SQL 错误。当我在 phpmyadmin 中使用它时,它工作正常。我用谷歌搜索过,我看到人们只在存储过程中使用“SET @var = MySQL 查询”。是否可以按我的方式使用?

【问题讨论】:

标签: php mysql phpmyadmin set


【解决方案1】:

如果您正在运行多个查询(即,您的查询中有一个;),您需要将其作为两个单独的查询运行,或者使用类似mysqli_multi_query 的命令。 mysql_query 命令一次只能运行一个查询。

mysql_query('SET @VAR := SELECT MAX(first_column) FROM TABLE');
mysql_query('SELECT @var, table.second_column FROM table');

另见this related question

【讨论】:

  • 谢谢,我不知道只能有一个查询。我尝试进行多个查询,因为我认为它会比单独查询稍快。
【解决方案2】:
SELECT MAX(first_column) INTO @var FROM table; 
SELECT @var,table.second_column FROM table;  

【讨论】:

    猜你喜欢
    • 2021-05-20
    • 2012-03-16
    • 2013-06-01
    • 2014-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-12
    • 2011-01-17
    相关资源
    最近更新 更多