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