我正在为这个查询奋斗几天。我认为这确实很简单,但是我看不到自己在做错什么。
我使用的是“ functions.php”文件,其中保存了所有查询,每个查询都在自己的PHP函数中,例如:
$query ='
SELECT *
FROM Table
';
现在,我希望能够在查询中使用变量,并在查询本身中声明它们。就像是:
$query ='
SET @myvar := 0
SELECT ID, @myvar := @myvar + SomeRow AS Result
FROM Table
';
我一直在谷歌搜索和搜索,找到了很多解决方案,但无法使它们中的任何一个...我肯定会丢失一些东西。
任何建议都欢迎...
谢谢
那是两个问题(查询)。因此,您必须将其分离。
$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)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句