理解 mysql 模糊查詢語句
在 mysql 中,使用“like”操作符進行模糊查詢時,通常需要使用通配符“%”來匹配字符串中的任意字符。但是,在某些情況下,查詢結果可能與預期不符。
以下示例中的兩個查詢將產生不同的結果:
select * from `user` where username like "%" 'name' "%" (可以查出數據) select * from `user` where username like "%" "name" "%" (查不出來數據)
登錄后復制
這可能是由于字符串拼接方式不同造成的。
第一個查詢中,單引號 ‘ 將 name 與百分號 % 分隔開來,導致字符串被解析為:
"%'name'%"
登錄后復制
在這種情況下,mysql 將匹配 username 中包含字符串 “‘name'” 的記錄。
而第二個查詢中,缺少單引號,因此字符串被解析為:
"%name%"
登錄后復制
這將匹配 username 中包含字符串 “name” 的記錄。由于 “name” 不在給定的表中,因此該查詢將返回空結果。
官方 mysql 文檔建議在字符串之間使用空格進行分隔,而不是使用單引號。這將確保字符串正確拼接并獲得預期的結果。
因此,為了避免混淆,最好遵循官方建議,使用空格或其他分隔符來拼接模糊查詢字符串。