我有一张桌子,看起来像这样:

+---------+----------+
| post_id |   path   |
+---------+----------+
|       1 | 1/       |
|       2 | 1/2/     |
|       3 | 1/2/3/   |
|       4 | 1/2/3/4/ |
|       5 | 1/2/5/   |
+---------+----------+


然后,我有一个查询,看起来像以下内容:

SELECT post_id AS column_1,
       post_path
FROM posts
WHERE post_path REGEXP concat(?, '/[0-9]+/$') LIMIT 5
UNION
SELECT post_id AS column_2,
       post_path
FROM posts
WHERE post_path REGEXP concat(?, '/', column_1, '/[0-9]+/$') LIMIT 5


在最后一行,您会看到我正在使用column_1来引用第一个查询中的post_id,但这是行不通的。

如何进行这项工作,以便可以在当前post_id所在的第二个查询中的第一个查询中使用column_1

谢谢。

最佳答案

使用@variable_name:=使用所选列的当前数据,这是代码

SELECT @col:=post_id AS column_1,
   post_path
FROM posts
WHERE post_path REGEXP concat(?, '/[0-9]+/$') LIMIT 5
UNION
SELECT post_id AS column_2,
   post_path
FROM posts
WHERE post_path REGEXP concat(?, '/', @col, '/[0-9]+/$') LIMIT 5


如您所见,@col是您的变量,@col的更多定义可以在这里访问我的其他答案#1054 - Unknown column in 'field list'

关于php - 在第二个查询的值中使用第一个查询的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27434666/

10-13 08:49