SET @var:= SELECT * FROM table_name:是可能的

时间:2012-04-26 21:41:34

标签: php mysql phpmyadmin set

我正在尝试编写我的MySQL查询,但我坚持这一点 - 我有从php到SQL数据库的多个查询:

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

SELECT @var, 
    table.second_column
FROM table;

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

2 个答案:

答案 0 :(得分:6)

如果您正在运行多个查询(即查询中有;),则需要将其作为两个单独的查询运行,或使用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

答案 1 :(得分:1)

SELECT MAX(first_column) INTO @var FROM table; 
SELECT @var,table.second_column FROM table;