Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL-是否向IN子句添加值?_Mysql_Union - Fatal编程技术网

MySQL-是否向IN子句添加值?

MySQL-是否向IN子句添加值?,mysql,union,Mysql,Union,我目前有以下问题: SET sql_mode=''; SELECT `id`, `url`,`number`,`abbrev`,`content`,`label`,`hier-1` FROM `leganalyse_unitsub_2020` WHERE `id` IN (SELECT MAX(`id`) FROM `leganalyse_unitsub_2020` GROUP BY `url`) 以下子句中的子查询: SELECT MAX(`id`) FROM `leganalyse_un

我目前有以下问题:

SET sql_mode='';
SELECT `id`, `url`,`number`,`abbrev`,`content`,`label`,`hier-1` FROM `leganalyse_unitsub_2020` WHERE `id` IN  (SELECT MAX(`id`) FROM `leganalyse_unitsub_2020` GROUP BY `url`)
以下子句中的子查询:

SELECT MAX(`id`) FROM `leganalyse_unitsub_2020` GROUP BY `url`
返回一组整数值

对于返回的每个整数值x,我还想包括x-1、x-2、x-3、x-4和x-5

比如:

SELECT `id`, `url`,`number`,`abbrev`,`content`,`label`,`hier-1` FROM `leganalyse_unitsub_2020` WHERE `id` IN  
(
SELECT MAX(`id`) FROM `leganalyse_unitsub_2020` GROUP BY `url`
UNION
SELECT MAX(`id`)-1 FROM `leganalyse_unitsub_2020` GROUP BY `url`
UNION
SELECT MAX(`id`)-2 FROM `leganalyse_unitsub_2020` GROUP BY `url`
UNION
SELECT MAX(`id`)-3 FROM `leganalyse_unitsub_2020` GROUP BY `url`
UNION
SELECT MAX(`id`)-4 FROM `leganalyse_unitsub_2020` GROUP BY `url`
)
但我不确定这是否正确


什么查询将执行我所描述的操作?

将子查询与返回0、1、2、3、4的查询交叉连接,以获取所有可能的值:

SELECT id, url,number, abbrev, content, label, hier-1 
FROM leganalyse_unitsub_2020 WHERE id IN (
  SELECT g.id - t.id
  FROM (SELECT 0 id UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4) t
  CROSS JOIN (SELECT MAX(id) id FROM leganalyse_unitsub_2020 GROUP BY url) g
)
此代码基于您上次的查询。 如果您希望值与问题中提到的x-1、x-2、x-3、x-4和x-5类似,则应使用此子查询:

SELECT 1 id UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5