我在MySQL數據庫,其結構的表上定義FILE_TYPE記錄及其項目類型和父節點編號是有點像MySQL查詢找到
id |parent_id| project_id | name | file_type
-------------------------------------------
1 | NULL | p1 | abc1 | f1
2 | NULL | p1 | abc2 | f2
3 | 1 | p1 | abc3 | f2
4 | NULL | p2 | abc4 | f1
5 | 1 | p1 | abc5 | f3
6 | NULL | p2 | abc6 | f3
7 | 4 | p2 | abc7 | f1
8 | NULL | p1 | abc8 | f2
9 | 7 | p2 | abc9 | f1
我試圖獲取其PARENT_ID所有記錄必須NULL和PROJECT_ID必須是「P1」和FILE_TYPE可以是「F1」或「F2」
按我目前的進展這個查詢爲我工作
SELECT * FROM TestTable的WHERE(PROJECT_ID = 'P1' AND PARENT_ID是NULL AND FILE_TYPE = 'F1')OR(PROJECT_ID = 'P1' AND PARENT_ID IS NULL和 FILE_TYPE = 'F2');
有沒有更好的方法來獲取所需的記錄,如使用連接? 高性能的方法更可取。
另外,因爲我使用file_type來過濾記錄。
因此,在file_type列上添加一個索引會不會好?
數據類型此列是VARCHAR(50)
'IN'是否與擁有百萬條記錄的表一起工作的正確方法? – prem