我有一张看起来像这样的表:
+---------+----------+
| 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
?
感谢。
答案 0 :(得分:0)
使用@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
是您的变量,有关@col
的更多定义,您可以在此处访问我的其他答案#1054 - Unknown column in 'field list'