我已经为这个查询苦苦挣扎了几天。 我认为这真的很简单,但我看不出我做错了什么。
我正在使用一个“functions.php”文件,我在其中保存了我所有的查询,每个查询都在其自己的 PHP 函数中,例如:
$query ='
SELECT *
FROM Table
';
我现在希望能够在我的查询中使用变量,在查询中自行声明它们。像这样的东西:
$query ='
SET @myvar := 0
SELECT ID, @myvar := @myvar + SomeRow AS Result
FROM Table
';
我一直在 SO 中进行谷歌搜索和搜索,找到了很多解决方案,但无法使它们中的任何一个起作用……我肯定遗漏了一些东西。
欢迎任何建议...
谢谢
最佳答案
那是两个问题(查询)。所以你必须把它分开。
$query ='
SET @myvar := 0;
SELECT ID, @myvar := @myvar + SomeRow AS Result
FROM Table;
';
或者你这样初始化它
$query ='
SELECT ID, @myvar := @myvar + SomeRow AS Result
FROM Table, (SELECT @myvar := 0) AS init
';
样本
MariaDB [test]> select id, order_ID from orders limit 10;
+-----+----------+
| id | order_ID |
+-----+----------+
| 632 | 111 |
| 633 | 111 |
| 634 | 111 |
| 635 | 112 |
| 636 | 113 |
| 637 | 113 |
| 638 | 113 |
| 639 | 113 |
| 640 | 113 |
| 641 | 113 |
+-----+----------+
10 rows in set (0.00 sec)
MariaDB [test]> SELECT id, @myvar := @myvar + order_ID
-> FROM orders, (SELECT @myvar := 0) AS init LIMIT 10;
+-----+-----------------------------+
| id | @myvar := @myvar + order_ID |
+-----+-----------------------------+
| 632 | 111 |
| 633 | 222 |
| 634 | 333 |
| 635 | 445 |
| 636 | 558 |
| 637 | 671 |
| 638 | 784 |
| 639 | 897 |
| 640 | 1010 |
| 641 | 1123 |
+-----+-----------------------------+
10 rows in set (0.00 sec)
关于php - 如何在 PHP 函数中的查询中声明变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34979986/