MySQL 模糊查詢中,字符串拼接方式為何會影響查詢結果?

MySQL 模糊查詢中,字符串拼接方式為何會影響查詢結果?

淺析模糊查詢語句中的字符串拼接

mysql 中使用模糊查詢時,字符串拼接的方式會影響查詢結果。以下代碼段中的兩個查詢語句采用不同的字符串拼接方式:

select * from `user` where username like "%" 'name' "%" (可以查出數據) select * from `user` where username like "%" "name" "%" (查不出來數據)

第一種寫法可以查出數據,而第二種則查不出數據。這是因為在 mysql 中,如果多個字符串之間沒有使用空格分隔,那么這些字符串會被解析為一個整體。因此,第一個查詢語句實際上是對 username 字段進行模糊匹配 ‘%name%’,而第二個查詢語句是對 username 字段進行模糊匹配 ‘%”name”%’。

需要注意的是,mysql 并不推薦使用第二個查詢語句中那樣的字符串拼接方式。正確的字符串拼接方式應使用空格分隔,或使用 concat 函數或 concat_ws 函數進行拼接。

? 版權聲明
THE END
喜歡就支持一下吧
點贊5 分享