Php 选择以%作为值字符的查询sql
您好,我在数据库中有一个表,如下所示:Php 选择以%作为值字符的查询sql,php,mysql,sql,url,Php,Mysql,Sql,Url,您好,我在数据库中有一个表,如下所示: ╔══════════════════════════════════════════╗ ║ v3_url_alias ║ ╠════╦═══════════════╦═════════════════════╣ ║ id ║ query ║ keyword ║ ╠════╬═══════════════╬═════════════════════╣ ║ 1
╔══════════════════════════════════════════╗
║ v3_url_alias ║
╠════╦═══════════════╦═════════════════════╣
║ id ║ query ║ keyword ║
╠════╬═══════════════╬═════════════════════╣
║ 1 ║ product_id=20 ║ 540-65R38-K_028 ║
║ 2 ║ product_id=21 ║ 18.00R33-EM_DT-150% ║
╚════╩═══════════════╩═════════════════════╝
我使用此表使我的url友好,但许多人都知道%符号不是有效的url字符,因此使我的浏览器收到错误的请求。
我在这个表中有很多条目(1700左右),需要一个查询来获取列关键字中包含%的所有条目
所以我尝试在MySQL中这样做,并提出了以下查询:
SELECT * FROM v3_url_alias WHERE keyword LIKE '%%%';
这将返回我的所有关键字,因为%用作通配符
我的问题是如何用SQL检索每个包含%字符的关键字?使用转义字符 MySQL将反斜杠(
\
)作为默认转义字符:
SELECT * FROM v3_url_alias WHERE keyword LIKE '%\%%';
ANSI SQL的方法是使用转义
子句指定转义字符,例如:
SELECT * FROM v3_url_alias WHERE keyword LIKE '%#%%' escape '#';
(这也适用于MySQL,至少只要未指定\
。使用方括号
SELECT *
FROM v3_url_alias
WHERE keyword LIKE '%[%]%'
使用MySQL:
使用反斜杠转义字符(\)
这帮我完成了任务:)!只是好奇。既然
SELECT*FROM v3\u url\u别名WHERE关键字像“%\%%”,为什么需要escape'\'
代码>有效。我不知道我遗漏了这一部分,我认为这是对描述的补充,因为我没有注意到它在查询中,所以我想well@6339是吗?!?那一定很特别。我的答案是一般的ANSI SQL。@Baklap4使用SELECT*fromV3\uURL\u别名,其中的关键字“%\%%”escape'\'代码>?。我的意思是使用escape'\'
关键字。
SELECT * FROM v3_url_alias WHERE keyword LIKE '%\%%';