想我這樣做:MySQL的後備WHERE語句
SELECT * FROM table WHERE field2 = '[email protected]' OR field2 LIKE '%%[email protected]%%';
在這種情況下,它會嘗試執行兩個field2 = '[email protected]'
和field2 LIKE '%%[email protected]%%'
條件(即,它會搜索匹配,因此這些條件需要行匹配一些更多的計算能力,試圖找到行匹配兩個條件,即使它已經發現了一排匹配field2 = '[email protected]'
)
有沒有辦法通過改革查詢才指示MySQL的嘗試執行field2 LIKE '%%[email protected]%%'
如果條件field2 = '[email protected]'
不匹配任何事都可以查詢變得更高效
IE。我基本上希望mysql只嘗試找到匹配field2 LIKE '%%[email protected]%%'
的行,只有當沒有行匹配field2 = '[email protected]'
。如果找到完全匹配的行field2 = '[email protected]'
,不要試圖去匹配field2 LIKE '%%[email protected]%%'
此外,沒有子查詢
這是否工作:'SELECT * FROM table WHERE field2 ='2019 @ 162440'OR(field2!='2019 @ 162440'AND field2 LIKE'%% 2019 @ %%');' –
它會返回相同的 – AdrianBR
@AdrianBR是的,但會保持mysql做這兩個檢查?我在這裏問,我不知道。 –