對於給定的查詢MySQL的性能,與LIKE「%%」
select * from contacts where name like "%$name%"
是否MySQL的優化查詢,以排除條件時,變量$name
是空的?
當$名稱爲空字符串,將查詢將被
select * from contacts
或
select * from contacts where name like "%%"
對於給定的查詢MySQL的性能,與LIKE「%%」
select * from contacts where name like "%$name%"
是否MySQL的優化查詢,以排除條件時,變量$name
是空的?
當$名稱爲空字符串,將查詢將被
select * from contacts
或
select * from contacts where name like "%%"
正如Alex K在評論中提到的,MySQL不會做任何事情來優化類似的查詢。
如果您的行中有空值,查詢將不會返回結果集中的那些行,這說明每行都有一個檢查。 建議如果搜索值爲空,最好對代碼進行檢查並跳過類似子句。
沒有執行,
使用PHP條件完全跳過查詢中$ name爲空的事件。
對於任何正在尋找答案的人,請注意我的回答是正確的,並且會幫助你(下注是正確的)。 –
答案是否定的。 MySQL將返回所有記錄 –
不,請考慮NULL和不帶WHERE子句的NULL名稱的行爲。 –
讓人感覺Alex。我之前沒有想到NULL。 – sushil