你好,我在这样的数据库中有一个表:
????????????????????????????????????????????
? v3_url_alias ?
????????????????????????????????????????????
? id ? query ? keyword ?
????????????????????????????????????????????
? 1 ? product_id=20 ? 540-65R38-K_028 ?
? 2 ? product_id=21 ? 18.00R33-EM_DT-150% ?
????????????????????????????????????????????
Run Code Online (Sandbox Code Playgroud)
我正在使用此表格使我的网址友好,但很多人都知道%符号不是有效的网址字符,因此我的浏览器收到了错误的请求.我在这个表(1700左右)中有很多条目,需要一个查询来获取列关键字中包含%的所有条目.
所以我尝试在MySQL中做到这一点并想出了这个查询:
SELECT * FROM v3_url_alias WHERE keyword LIKE '%%%';
Run Code Online (Sandbox Code Playgroud)
这将返回我的所有关键字,因为%用作通配符.
我的问题如何用SQL检索包含%字符的每个关键字?
使用转义字符!
MySQL将反斜杠(\)作为默认转义字符:
SELECT * FROM v3_url_alias WHERE keyword LIKE '%\%%';
Run Code Online (Sandbox Code Playgroud)
在ANSI SQL的方式是使用一个ESCAPE子句指定转义字符,例如:
SELECT * FROM v3_url_alias WHERE keyword LIKE '%#%%' escape '#';
Run Code Online (Sandbox Code Playgroud)
(这也适用于MySQL,至少只要\没有指定.)
| 归档时间: |
|
| 查看次数: |
151 次 |
| 最近记录: |