这是简化的查询,我想在FROM ()
内手动添加ID,我尝试了几种方法,但看起来不可能。
SELECT p._data FROM (
SELECT p_id FROM p WHERE search=? LIMIT 10
)s JOIN p ON p.p_id = s.p_id
我想做这样的事情,但是行得通:
FROM (SELECT [1,2,3,4,5,6] AS p_id)s
“我知道我可以使用IN(),但有很多限制。” ===假
PD:我正在使用10.1.29-MariaDB。显然,在出现JSON_ARRAY()之前,它可以工作,但现在不行了。
PD2:哦,10.2.3又回来了,我可能会升级。
答案 0 :(得分:1)
您可以使用UNION ALL
(或UNION
,如果您不希望有任何重复的话)
SELECT p._data
FROM (SELECT 1 AS p_id UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL
SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6) s
JOIN p ON p.p_id = s.p_id
正如@RickJames指出的那样,从MariaDB 10.1开始,您可以使用sequence engine生成数字列表:
SELECT p.p_id, p._data
FROM seq_1_to_6 s
JOIN p ON p.p_id = s.seq
答案 1 :(得分:1)