MySQL LIKE查询与下划线

27 浏览
0 Comments

MySQL LIKE查询与下划线

我有一个名为images的表格,内容如下:\n

+----+--------------+
| id |   img_path   |
+----+--------------+
| 1  | abc_1.jpg    |
| 2  | abc_2.jpg    |
| 3  | abcde_1.jpg  |
| 4  | abcde_2.jpg  |
| 5  | abcdef_1.jpg |
+----+--------------+

\n我想选择以abc_开头的记录,所以我使用以下查询语句:\n

SELECT id FROM images WHERE img_path LIKE 'abc_%'

\n但是它返回了所有5行。如何只返回id等于1和2的记录(即以abc_开头的img_path)?

0
0 Comments

MySQL LIKE查询中下划线(_)是一个特殊字符,需要使用反斜杠进行转义。如果在Rails/ActiveRecord中使用,需要进行双重转义。在纯Ruby中,似乎支持"abc\_%"这种写法。然而,在Rails/ActiveRecord中,"abc\_%"却不能正常工作,所以如果纯Ruby支持,那么Rails/ActiveRecord就必须要负责。更详细的答案可以参考stackoverflow上的解释。至于MySQL是否需要额外的方括号语法,可能需要进一步测试,因为之前提供的链接是针对SQL Server的。

0