选择%s作为值字符的查询sql

Bak*_*ap4 6 php mysql sql url

你好,我在这样的数据库中有一个表:

????????????????????????????????????????????
?              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检索包含%字符的每个关键字?

jar*_*rlh 5

使用转义字符!

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,至少只要\没有指定.)