mysqli“in”操作符动态和静态值

4ngedf3f  于 2021-06-23  发布在  Mysql
关注(0)|答案(2)|浏览(405)

实际上,我试图从id为219且id与查询匹配的列中获取结果。

SELECT *
FROM `table1`
WHERE `id` IN ('219', SELECT `id` FROM `table2` WHERE `parent_id`='219')

我想使用ID219和查询在一起,这样查询会拉一些更多的id。但这对我不起作用。

sqyvllje

sqyvllje1#

根据我的经验, OR 子句在中没有得到很好的优化 MySQL . 另一个选项是在 IN 包含“219”的子句

SELECT * FROM table1 WHERE id IN (
SELECT id FROM table2 WHERE parent_id = 219 UNION SELECT '219')
v09wglhw

v09wglhw2#

您可以尝试此版本:

SELECT *
FROM table1
WHERE id = 219 OR id IN (SELECT id FROM table2 WHERE parent_id = 219);

你的问题有一种递归层次查询的味道,在这里我们可能会进行某种连接。如果你需要更复杂的输出,那么你应该更新你的问题。

相关问题