mysql如何查詢有兩個反斜線()的數據記錄 | SQL 反斜線
我們大家都知道,需要查詢某一字段值包含指定字符串可以使用like和通配符實現,例如,查詢users表中username字段值包含"php"的用戶,可以這樣實現:select*fromuserswhereusernamelike%php%但如果要查詢username字段值包含""的用戶,該如何寫SQL呢,當然也是使用like和通配符實現。這裏我們先來了解一下mysql中的反斜線。由於MySQL在字符串中使用C轉義語法(例如,用‘’代表一個換行字符),在LIKE字符串中,必須將用到的‘’雙寫。例如,若要查找‘’,必須將其寫成‘’。而若要查找‘’,則必須將其寫成like‘%\%’;原因是反斜線符號會被語法分析程...
我們大家都知道,需要查詢某一字段值包含指定字符串可以使用like和通配符實現,例如,查詢users表中username字段值包含"php"的用戶,可以這樣實現:
select *from users where username like %php%
但如果要查詢username字段值包含""的用戶,該如何寫SQL呢,當然也是使用like和通配符實現。 這裏我們先來了解一下mysql中的反斜線。
由於 MySQL在字符串中使用 C轉義語法(例如, 用‘ ’代表一個換行字符),在LIKE字符串中,必須將用到的‘’雙寫。例如, 若要查找 ‘ ’, 必須將其寫成 ‘ ’。而若要查找 ‘’, 則必須將其寫成 like ‘%\%’;原因是反斜線符號會被語法分析程序剝離一次,在進行模式匹配時,又會被剝離一次,最後會剩下一個反斜線符號接受匹配。
因此,如果我們要查詢username字段值包含""的用戶,sql語句應該是這樣的:
select *from users where username like %\\%;/*必須是四個反斜線*/
如果要查詢有兩個反斜線()的數據記錄,sql語句應該是這樣的:
select *from users where username like %\\\\%;/*必須是八個反斜線*/