为什么“ _”(下划线)与“-”(连字符)匹配?

我必须使用此查询查找PDF手册:

root@localhost:test> select * from a where name like '%taz_manual%.pdf%';

+--------------------+------------------+-------------+

| name | description | size |

+--------------------+------------------+-------------+

| taz-manual-1.1.pdf | Manual v1.0 TA-Z | 31351902 |

| taz-manual-0.2.pdf | Manual v1.0 T1-A | 3578278 |

| taz_manual-2.0.pdf | Manual v2.0 GA-X | 542578278 |

etc........

+--------------------+------------------+-------------+

132 row in set (0.00 sec)

指定名称为时,为什么会看到带有短划线的那个taz_manual%.pdf

回答:

因为下划线_是百分号之类的通配符%,只不过它只查找一个字符。

SQL模式匹配使您可以使用“ _”来匹配任何单个字符,并使用“%”来匹配任意数量的字符(包括零个字符)。

(来自MySQL文档中的3.3.4.7。模式匹配。)

如果要将下划线like用作文字,则必须对其进行转义:

select * from a where name like '%taz\_manual%.pdf%';

以上是 为什么“ _”(下划线)与“-”(连字符)匹配? 的全部内容, 来源链接: utcz.com/qa/406927.html

回到顶部