我试图理解 Mysql 解释,我读到“ALL”类型的性能是最差的。我刚刚写了一个非常简单的带有一个左连接的sql
SELECT * FROM production_plan_header pph LEFT JOIN production_plan_details ppd ON ppd.ppd_header_id = pph.pph_id WHERE pph.pph_id =1
如果我对此使用 EXPLAIN,我会得到以下结果。
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE pph const PRIMARY PRIMARY 4 const 1
1 SIMPLE ppd ALL ppd_header_id NULL NULL NULL 7
如您所见,生产计划详细信息的类型为“ALL”。行显示表 (7) 中的总行数。 ppd_header_id 列已建立索引。有没有办法阻止我的 sql 语句中出现此“ALL”?
最佳答案
我不确定我是否正确地回答了你的问题,但如果你想删除 Type = "ALL"的行,在这种情况下,你可以像下面这样编写查询。
SELECT *
FROM production_plan_header pph
LEFT JOIN production_plan_details ppd
ON ppd.ppd_header_id = pph.pph_id
WHERE pph.pph_id = 1
AND ppd.type <> "ALL"
关于mysql - 防止 'ALL' 输入 Mysql 解释 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48655448/