我有一张桌子,看起来像这样:
+---------+----------+
| 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/