php - 在第二个查询的值中使用第一个查询的值

标签 php mysql sql mysqli

我有一个看起来像这样的表:

+---------+----------+
| 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,但是,这不起作用。

我怎样才能完成这项工作,以便我可以在 column_1 当前所在的第二个查询中使用第一个查询中的 post_id

谢谢。

最佳答案

使用@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'

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

相关文章:

php - 根据数组的数量显示 div

php - SQL - 查询以从搜索中返回最相关的结果

mysql - 如何制作一个较小的表来覆盖另一个较大的表?

mysql - 在 SQL 表中创建索引显示未定义索引

sql - Oracle:即使没有找到数据,查询也始终只返回一行

php - 限制插入数据库、PHP/AJAX 的条目数

php - 将自定义 "Booking"按钮添加到 WooCommerce 产品单页

java - 从mysql显示表数据到jsp页面

php - PDO 连接问题

mysql - 批处理 : "!" OPERATOR in IF-ELSE MYSQL