[英]Selecting query sql with % as value character
你好,我在这样的数据库中有一个表:
╔══════════════════════════════════════════╗
║ v3_url_alias ║
╠════╦═══════════════╦═════════════════════╣
║ id ║ query ║ keyword ║
╠════╬═══════════════╬═════════════════════╣
║ 1 ║ product_id=20 ║ 540-65R38-K_028 ║
║ 2 ║ product_id=21 ║ 18.00R33-EM_DT-150% ║
╚════╩═══════════════╩═════════════════════╝
我正在使用此表格使我的网址友好,但很多人都知道%符号不是有效的网址字符,因此我的浏览器收到了错误的请求。 我在这个表(1700左右)中有很多条目,需要一个查询来获取列关键字中包含%的所有条目。
所以我尝试在MySQL中做到这一点并想出了这个查询:
SELECT * FROM v3_url_alias WHERE keyword LIKE '%%%';
这将返回我的所有关键字,因为%用作通配符。
我的问题如何用SQL检索包含%字符的每个关键字?
使用转义字符!
MySQL将反斜杠( \\
)作为默认转义字符:
SELECT * FROM v3_url_alias WHERE keyword LIKE '%\%%';
ANSI SQL方法是使用ESCAPE
子句指定转义字符,例如:
SELECT * FROM v3_url_alias WHERE keyword LIKE '%#%%' escape '#';
(这也适用于MySQL,至少只要没有指定\\
。)
使用方括号。
SELECT *
FROM v3_url_alias
WHERE keyword LIKE '%[%]%'
使用MySQL:
使用反斜杠转义字符(\\)。
SELECT * FROM v3_url_alias WHERE keyword LIKE '%\%%';
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.